Не удается установить соединение с сервером по адресу ws://localhost: 8000/socket / server / startDaemon.РНР. var socket = новый WebSocket (хост);
Я использую javascript для подключения websocket:
<script>
var socket;
var host = "ws://localhost:8000/socket/server/startDaemon.php";
var socket = new WebSocket(host);
</script>
я получил ошибку:
не удается установить соединение с сервером по адресу
var host = "ws://localhost:8000/socket/server/startDaemon.php";
var socket = new WebSocket(host);
как я могу решить эту проблему?
примечание: Я включил websocket в mozilla для поддержки приложения веб-сокета. и когда я бегу в chrome, я получил ошибку:
can't establish a connection to the server at ws://localhost:8000/socket/server/startDaemon.php. var socket = new WebSocket(host);
4 ответов
по-видимому, firefox 4 отключил websockets из-за уязвимостей. Цитата из этой статьи:
WebSocket отключен в Firefox 4
недавние открытия обнаружили, что протокол, с которым работает Websocket, уязвим для атак. Адам Барт продемонстрировал некоторые серьезные атаки против протокола, которые могут быть использованы злоумышленником для отравления кэшей, которые находятся между браузером и Интернет.
Я решил свою ошибку, следуя коду по этой ссылке
http://www.flynsarmy.com/2010/05/php-web-socket-chat-application/ и создал socketWebSocketTrigger.класс.php файл для ответного сообщения, где код как
class socketWebSocketTrigger
{
function responseMessage($param)
{
$a = 'Unknown parameter';
if($param == 'age'){
$a = "Oh dear, I'm 152";
}
if($param == 'hello'){
$a = 'hello, how are you?';
}
if($param == 'name'){
$a = 'my name is Mr. websocket';
}
if($param == 'today'){
$a = date('Y-m-d');
}
if($param == 'hi'){
$a = 'hi there';
}
return $a;
}
}
и добавлен код в функцию отправки ' WebSocketServer.php "для вызова функции "responseMessage", которая запрашивает сообщение ответа
public function send($client, $msg){
$this->say("> ".$msg);
$messageRequest = json_decode($msg,true);
// $action=$messageRequest[0];
$action = 'responseMessage';
$param = $messageRequest[1]['data'];
if( method_exists('socketWebSocketTrigger',$action) ){
$response = socketWebSocketTrigger::$action($param);
}
$msg = json_encode(
array(
'message',
array('data' => $response)
)
);
$msg = $this->wrap($msg);
socket_write($client, $msg, strlen($msg));
}
Он отлично работает.
вы пытаетесь запустить клиент в Firefox? Согласно документация:
от февраля/10 единственный браузерах, поддержка websockets-это Google Chrome и ночные Вебкиты. Отсюда http://www.google.com/chrome
попробуйте запустить его в Chrome и посмотреть, работает ли это для вас.
прежде всего, ваша ошибка заключается в использовании функции php с javascript require_once 'WebSocket.php';
и во-вторых, пройти через учебник, как в ссылке ниже.
http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
он работает нормально.
спасибо,