• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

客户端websocket 无法连接上PHP socket问题

php 搞代码 3年前 (2022-01-23) 25次浏览 已收录 0个评论
文章目录[隐藏]

我客户端是用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

<?phperror_reporting(E_ALL);set_time_limit(0);//ob_implicit_flush(); $address = '127.0.0.1';$port = 100322;//创建端口if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {    echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n";} //绑定if (socket_bind($sock, $address, $port) === false) {    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";} //监听if (socket_listen($sock, 5) === false) {    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";} do {    //得到一个链接    if (($msgsock = socket_accept($sock)) === false) {        echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n";        break;    }    //welcome  发送到客户端    $msg = "<font color='red'>server send:welcome</font><br />";    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-ch8本文来源gao.dai.ma.com搞@代*码(网$

搞代gaodaima码

at/blob/master/applications/Chat/Event.php

有没有教程。。这个好像用了workman 但没看到教程。。

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

有没有教程。。

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:客户端websocket 无法连接上PHP socket问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址