Не удается установить соединение с сервером по адресу ws: // localhost: 8000 / socket / server / startDaemon.php.var socket = новый WebSocket (хост); - PullRequest
14 голосов
/ 30 мая 2011

Я использую JavaScript для подключения веб-сокета:

<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 ]

5 голосов
/ 02 июня 2011

Очевидно, что в Firefox 4 отключены веб-сокеты из-за уязвимостей.Цитировать Из этой статьи:

WebSocket отключен в Firefox 4

Недавние открытия обнаружили, что протокол, с которым работает Websocket, уязвимк атакам.Адам Барт продемонстрировал несколько серьезных атак против протокола, который может использоваться злоумышленником для отравления кэшей, которые находятся между браузером и Интернетом.

3 голосов
/ 08 июня 2011

Я решил свою ошибку, выполнив следующий код по этой ссылке

http://www.flynsarmy.com/2010/05/php-web-socket-chat-application/ и создал файл socketWebSocketTrigger.class.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));
    }

прекрасно работает.

1 голос
/ 08 июня 2011

Во-первых, ваша ошибка - использовать функцию php с javascript require_once 'WebSocket.php';, а во-вторых, пройти курс, как показано ниже.

http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

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

Спасибо

1 голос
/ 02 июня 2011

Вы пытаетесь запустить клиент в Firefox?Согласно документации :

На 10 февраля единственными браузерами, поддерживающими веб-сокеты, являются Google Chrome и Webkit Nightlies.Получите его отсюда http://www.google.com/chrome

Попробуйте запустить его в Chrome и посмотрите, работает ли он для вас.

...