php websocket 连接已断开连接,客户端websocket 无法连接上PHP socket问题

我客户端是用c++写得websocket

客户端我请求的地址是ws://127.0.0.1:100322 (我请求ws://echo.websocket.org这个是可以的说明客户端代码是没问题的 问题就在服务端)

输出

[1405476678:7805] NOTICE: Initial logging level 7

[1405476678:7806] NOTICE: Library version: 1.3 1544a2a

[1405476678:7806] NOTICE: Started with daemon pid 0

[1405476678:7806] NOTICE: static allocation: 4436 + (12 x 256 fds) = 7508 bytes

[1405476678:8329] WARN: problems parsing header

PHP 写的socket

server send:welcome

"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 8192); $talkback = "received message:$buf\n"; echo $talkback; if (false === socket_write($msgsock, $talkback, strlen($talkback))) { echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n"; } else { echo 'send success'; } socket_close($msgsock);} while(true);//关闭socketsocket_close($sock); ?>

以下是客户端发到服务端 PHP socket的输出

192:socket apple$ php index.php

read client message\nreceived message:GET / HTTP/1.1

Pragma: no-cache

Cache-Control: no-cache

Host: 127.0.0.1

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Key: nfvpsG0kAZkYrfZQkptpUA==

Origin: 127.0.0.1

Sec-WebSocket-Protocol: default-protocol

Sec-WebSocket-Extensions: deflate-frame

Sec-WebSocket-Version: 13

send success

回复讨论(解决方案)

您的 php 代码中并没有看到与 websocket 协议相关的内容

看看服务端的端口有没有正常开启或已被占用

你的php socket服务器没有完成websocket握手,建议你看下websocket 协议相关文档,或者参考下别人怎么写的,比如下面的代码包含了websocket握手及发送websocket消息

https://github.com/walkor/workerman-chat/blob/master/applications/Chat/Event.php

你的php socket服务器没有完成websocket握手,建议你看下websocket 协议相关文档,或者参考下别人怎么写的,比如下面的代码包含了websocket握手及发送websocket消息

https://github.com/walkor/workerman-chat/blob/master/applications/Chat/Event.php有没有教程。。这个好像用了workman 但没看到教程。。

您的 php 代码中并没有看到与 websocket 协议相关的内容有没有教程。。

没教程没教程没教程没教程没教程没教程

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值