簡體   English   中英

PHP Web套接字 - 握手但不發送和接收

[英]PHP Web Sockets - Handshake Made but Not Sending and recieving

我最近下載了http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

php類創建一個PHP Web套接字服務器。

我通過命令行運行了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 ...寫入每個點的日志,這也可以通過命令窗口清楚地看到。 但是當我嘗試發送數據時,沒有任何內容輸出到日志中。

我然后去了前端嘗試了這個

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>');   
                }
            ..........
            ........

什么都沒有警報....有誰知道這里可能有什么問題?

問候

編輯:似乎實際上有一個工作實現。 見@Steve Lazaridis答案。

不久前,websockets協議的規范發生了變化(握手過程已經調整),這樣今天的瀏覽器就無法使用phpwebsockets中的代碼了。

無論哪種方式,在2010年12月,有一個來自Christopher Blizzard的博客文章,websocket實現已從Firefox 4中刪除。從那以后我沒有正確地遵循它,所以我不能告訴你它是否目前在瀏覽器中如Opera和Firefox瀏覽器。 也許他們以某種方式重新啟用它。

我前段時間已經實現了一個工作版本,但由於websockets通常被修改(可以通過緩存的中毒dns攻擊進行攻擊),所以我停止了實現。 所以我不知道它現在是否正常工作。 您可以閱讀我關於刪除的博客文章以及握手過程中發生的變化:

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

在那里你也可以得到我的代碼並測試它是否有效。

我建議您使用java或node.js websocket實現,如果它們正常工作。 我肯定不知道。

也許這會有所幫助......它是另一個php websocket服務器...... spoutserver

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM