من دارم وب سوکت با php رو یاد میگیرم . الان دو تا فایل روی سرور اجرا می کنم که با هم کانکت می شن و دیتا هم می فرستن و میگیرن ولی وقتی با جاوا اسکریپت می خوام کانکت شم ارور میده.
myServer.php
$host = "localhost";
$port = 800;
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$result = socket_bind($socket, $host, $port);
$result = socket_listen($socket, 3);
$spawn = socket_accept($socket);
$input = socket_read($spawn, 1024);
$input = trim($input);
echo "Client Message : ".$input;
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output));
socket_close($spawn);
socket_close($socket);
server.php



$host = "localhost";
$port = 800;
$message = "Hello APPACK";
echo "Message To server :".$message.'<br>';
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
$result = socket_connect($socket, $host, $port);
socket_write($socket, $message, strlen($message));
$result = socket_read ($socket, 1024);
echo "Reply From Server :".$result;
socket_close($socket);


اینم کد جاوا اسکریپت


$(document).ready(function(){
var host = 'localhost';
var port = '800';
var msgBox = $('#message-box');
var wsUri = "ws://" + host + ":" + port + "/socket/myServer.php";
console.log(wsUri);
websocket = new WebSocket(wsUri,'echo-protocol');
websocket.onopen = function(ev) {
msgBox.append('<div class="system_msg" style="color:#bbbbbb">Welcome to my "Chat box"!</div>');
}
websocket.onmessage = function(ev) {
var response = JSON.parse(ev.data);
var res_type = response.type;
var user_message = response.message;
var user_name = response.name;
var user_color = response.color;
switch(res_type){
case 'usermsg':
msgBox.append('<div><span class="user_name" style="color:' + user_color + '">' + user_name + '</span> : <span class="user_message">' + user_message + '</span></div>');
break;
case 'system':
msgBox.append('<div style="color:#bbbbbb">' + user_message + '</div>');
break;
}
msgBox[0].scrollTop = msgBox[0].scrollHeight;
};

websocket.onerror = function(ev){
msgBox.append('<div class="system_error">Error Occurred - ' + ev.message + '</div>');
};
websocket.onclose = function(ev){
msgBox.append('<div class="system_msg">Connection Closed</div>');
};
$('#send-message').click(function(){
send_message();
});
$("#message").on("keydown",function(event){
if(event.which==13){
send_message();
}
});

function send_message(){
var message_input = $('#message');
var name_input = $('#name');
if(message_input.val() == ""){
alert("Enter your Name please!");
return;
}
if(message_input.val() == ""){
alert("Enter Some message Please!");
return;
}
var msg = {
message: message_input.val(),
name: name_input.val(),
color : '<?php echo $colors[$color_pick]; ?>'
};
websocket.send(JSON.stringify(msg));
message_input.val('');
}
});



فایرفکس این مسج رو میده
Firefox can’t establish a connection to the server at ws://localhost:800/socket/myServer.php. actions.js
کروم هم این رو
WebSocket connection to 'ws://localhost:800/socket/myServer.php' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE