Не удается установить соединение с сервером по адресу 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/

он работает нормально.

спасибо,