首页 后端开发 php教程 客户端websocket 无法连接上PHP socket有关问题

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

Jun 13, 2016 pm 12:02 PM
echo nbsp socket websocket

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

本帖最后由 d6965921d 于 2014-07-16 10:25:53 编辑 我客户端是用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



<br /><?php<br />error_reporting(E_ALL);<br />set_time_limit(0);<br />//ob_implicit_flush();<br /> <br />$address = '127.0.0.1';<br />$port = 100322;<br />//创建端口<br />if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {<br />    echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n";<br />}<br /> <br />//绑定<br />if (socket_bind($sock, $address, $port) === false) {<br />    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";<br />}<br /> <br />//监听<br />if (socket_listen($sock, 5) === false) {<br />    echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";<br />}<br /> <br />do {<br />    //得到一个链接<br />    if (($msgsock = socket_accept($sock)) === false) {<br />        echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n";<br />        break;<br />    }<br />    //welcome  发送到客户端<br />    $msg = "<font color='red'>server send:welcome</font><br/>";<br />    socket_write($msgsock, $msg, strlen($msg));<br />    echo 'read client message\n';<br />    $buf = socket_read($msgsock, 8192);<br />    $talkback = "received message:$buf\n";<br />    echo $talkback;<br />    if (false === socket_write($msgsock, $talkback, strlen($talkback))) {<br />        echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";<br />    } else {<br />        echo 'send success';<br />    }<br />    socket_close($msgsock);<br />} while(true);<br />//关闭socket<br />socket_close($sock);<br /> <br /> <br />?><br />
登录后复制

以下是客户端发到服务端 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 socket服务器没有完成websocket握手,建议你看下websocket 协议相关文档,或者参考下别人怎么写的,比如下面的代码包含了websocket握手及发送websocket消息
https://github.com/walkor/workerman-chat/blob/master/applications/Chat/Event.php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

10种在 Windows 11 上调整亮度的方法 10种在 Windows 11 上调整亮度的方法 Dec 18, 2023 pm 02:21 PM

10种在 Windows 11 上调整亮度的方法

Java和WebSocket的结合:如何实现实时视频流播放 Java和WebSocket的结合:如何实现实时视频流播放 Dec 17, 2023 pm 05:50 PM

Java和WebSocket的结合:如何实现实时视频流播放

如何使用PHP和WebSocket实现实时通信 如何使用PHP和WebSocket实现实时通信 Dec 17, 2023 pm 10:24 PM

如何使用PHP和WebSocket实现实时通信

SSE 与 WebSocket SSE 与 WebSocket Apr 17, 2024 pm 02:18 PM

SSE 与 WebSocket

PHP和WebSocket: 实现实时数据传输的最佳实践方法 PHP和WebSocket: 实现实时数据传输的最佳实践方法 Dec 18, 2023 pm 02:10 PM

PHP和WebSocket: 实现实时数据传输的最佳实践方法

golang WebSocket编程技巧:处理并发连接 golang WebSocket编程技巧:处理并发连接 Dec 18, 2023 am 10:54 AM

golang WebSocket编程技巧:处理并发连接

Java Websocket如何实现在线白板功能? Java Websocket如何实现在线白板功能? Dec 17, 2023 pm 10:58 PM

Java Websocket如何实现在线白板功能?

WebSocket与JavaScript:实现实时监控系统的关键技术 WebSocket与JavaScript:实现实时监控系统的关键技术 Dec 17, 2023 pm 05:30 PM

WebSocket与JavaScript:实现实时监控系统的关键技术

See all articles