[英]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.