PHP Web Sockets - Рукопожатие сделано, но не отправляется и не получает - PullRequest
3 голосов
/ 09 сентября 2011

Я недавно скачал http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

php классы для создания сервера веб-сокетов PHP.

Я запустил startDaemon через командную строку и при посещении client.phpстраница, Рукопожатие четко зарегистрировано:

C:\wamp\bin\php\php5.3.5>php -f C:/wamp/www/socket/server/startDaemon.php
2011-09-09 13:55:42 System: Socket Resource id #7 created.
2011-09-09 13:55:42 System: Socket bound to localhost:8080.
2011-09-09 13:55:42 System: Start listening on Socket.
2011-09-09 13:56:40 WebSocket: Resource id #8 CONNECTED!
2011-09-09 13:56:40 WebSocket: Requesting handshake...
2011-09-09 13:56:40 WebSocket: Handshaking...
2011-09-09 13:56:40 WebSocket: Done handshaking...
2011-09-09 13:58:18 WebSocket: Resource id #8 disconnected!
2011-09-09 13:58:23 WebSocket: Resource id #9 CONNECTED!
2011-09-09 13:58:23 WebSocket: Requesting handshake...
2011-09-09 13:58:23 WebSocket: Handshaking...
2011-09-09 13:58:23 WebSocket: Done handshaking...
2011-09-09 13:59:14 WebSocket: Resource id #9 disconnected!
2011-09-09 13:59:14 WebSocket: Resource id #10 CONNECTED!
2011-09-09 13:59:14 WebSocket: Requesting handshake...
2011-09-09 13:59:14 WebSocket: Handshaking...
2011-09-09 13:59:14 WebSocket: Done handshaking...
2011-09-09 14:00:16 WebSocket: Resource id #11 CONNECTED!
2011-09-09 14:00:16 WebSocket: Requesting handshake...
2011-09-09 14:00:16 WebSocket: Handshaking...
2011-09-09 14:00:16 WebSocket: Done handshaking...
2011-09-09 14:00:16 WebSocket: Resource id #11 disconnected!
2011-09-09 14:00:23 WebSocket: Resource id #12 CONNECTED!
2011-09-09 14:00:23 WebSocket: Requesting handshake...
2011-09-09 14:00:23 WebSocket: Handshaking...
2011-09-09 14:00:23 WebSocket: Done handshaking...
2011-09-09 14:00:23 WebSocket: Resource id #12 disconnected!
2011-09-09 14:00:33 WebSocket: Resource id #13 CONNECTED!
2011-09-09 14:00:33 WebSocket: Requesting handshake...
2011-09-09 14:00:33 WebSocket: Handshaking...
2011-09-09 14:00:33 WebSocket: Done handshaking...
2011-09-09 14:00:33 WebSocket: Resource id #13 disconnected!

(я делаю несколько подключений для проверки)

моя проблема в том, что я не могу отправить или получить информацию.в классах php я установил этапы записи 1,2,3 ... в журнал в каждой точке, что снова вы можете ясно увидеть через командное окно.Но когда я пытаюсь отправить данные, в журнал ничего не выводится.

Si Затем я перешел на внешний интерфейс и попытался это сделать

if(!("WebSocket" in window)){
        $('#chatLog, input, button, #examples').fadeOut("fast");    
        $('<p>Oh no, you need a browser that supports WebSockets. How about <a href="http://www.google.com/chrome">Google Chrome</a>?</p>').appendTo('#container');     
    }else{
        //The user has WebSockets

    connect();

    function connect(){
            //var socket;
            var host = "ws://localhost:8080/socket/server/startDaemon.php";

            try{
                var socket = new WebSocket(host);
                socket.onopen = function(){
                    alert('open');
                    message('<p class="event">Socket Status: '+socket.readyState+' (open) </p>');   
                }
            ..........
            ........

ГДЕ не было сделано оповещение ...Кто-нибудь знает, что здесь может быть не так?

regards

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

РЕДАКТИРОВАТЬ: Кажется, на самом деле есть рабочая реализация.См. @Steve Lazaridis Answer.

Некоторое время назад спецификация протокола websockets изменилась (процесс рукопожатия был скорректирован), так что в современных браузерах вы не можете использовать код из phpwebsockets.

В любом случае, в декабре 2010 года от Кристофера Близзарда было сообщение о том, что Реализация веб-сокета была удалена из Firefox 4. С тех пор я не следовал ей должным образом, поэтому я не могу сказать вам, присутствует ли она в браузерах, таких как Opera иFire Fox.Может быть, они каким-то образом включили его.

Я реализовал рабочую версию некоторое время назад, но, поскольку веб-сокеты, как правило, были изменены (подвергались атаке с помощью кэшированной отравленной DNS-атаки), я перестал работать над реализацией.Так что я не знаю, работает ли он сейчас правильно.Вы можете прочитать мой пост, касающийся этого удаления и того, что изменилось в процессе рукопожатия:

http://ra23.net/wop/category/html5/

Там же вы можете получить мой код и проверить, работает ли он.

Я предлагаю вам использовать реализации веб-сокетов java или node.js, если они работают правильно.Я точно не знаю.

0 голосов
/ 09 сентября 2011

Может быть, это поможет ... это еще один сервер php websocket ... spoutserver

...