首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Web套接字-握手,但不发送和接收

PHP Web套接字-握手,但不发送和接收
EN

Stack Overflow用户
提问于 2011-09-09 22:45:13
回答 2查看 2K关注 0票数 3

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

用于创建php web socket服务器的PHP类。

我已经通过命令行运行了startDaemon,当我访问client.php页面时,握手被清楚地记录下来:

代码语言:javascript
复制
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...添加到日志中,您也可以通过命令窗口清楚地看到。但是当我尝试发送数据时,没有任何内容输出到日志中。

是的,然后我去了前端,尝试了一下

代码语言:javascript
复制
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>');   
                }
            ..........
            ........

WHere未发出警报....有人知道这里可能出了什么问题吗?

问候

EN

回答 2

Stack Overflow用户

发布于 2011-09-09 23:02:12

编辑:看起来确实有一个有效的实现。请看@Steve Lazaridis的答案。

不久前,websockets协议的规范发生了变化(握手过程进行了调整),因此在当今的浏览器中,您不能使用来自phpwebsocket的代码。

不管怎样,2010年12月,Christopher Blizzard发表了一篇博客文章,说websocket实现已经从Firefox4中删除了。从那以后,我没有正确地理解它,所以我不能告诉你它目前是否在Opera和Firefox这样的浏览器中。也许他们以某种方式重新启用了它。

我在一段时间前实现了一个工作版本,但由于websockets通常会被修改(可通过缓存的有毒dns攻击进行攻击),所以我停止了实现工作。所以我不知道它现在是否能正常工作。你可以阅读我的博客文章,关于握手过程中的移除和改变:

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

在那里,您还可以获得我的代码,并测试它是否工作。

我建议您使用java或node.js websocket实现,如果它们工作正常的话。我不是很确定。

票数 1
EN

Stack Overflow用户

发布于 2011-09-09 23:16:12

也许这会有帮助..。这是另一个php websocket服务器...spoutserver

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7363438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档