为了账号安全,请及时绑定邮箱和手机立即绑定

socket编程(server:PHP,client:js)

socket编程(server:PHP,client:js)

PHP
噜噜哒 2019-03-07 19:25:11
错误信息:WebSocket connection to 'ws://127.0.0.1:8888/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE请教下这是啥情况咋解决 service代码 $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); echo 'server start'; if(socket_bind($socket,"127.0.0.1",8888)==false){ echo 'server bind fail:'.socket_strerror(socket_last_error()); } if(socket_listen($socket,0) == false){ echo 'server listen fail:'.socket_strerror(socket_last_error()); } while (true){ $accept=socket_accept($socket); if($accept!=false){ $string=socket_read($accept,1024); echo 'server receive is :'.$string.PHP_EOL;//PHP_EOL为php的换行预定义常量 if($string!=false){ $return_string='server receive is :'.$string.PHP_EOL; $ret = socket_write($accept,$return_string,strlen($return_string)); var_dump($ret); }else{ echo 'socket_read is fail'; } socket_close($accept); } } socket_close($socket); client <script> var ws = new WebSocket("ws://127.0.0.1:8888"); ws.onopen = function (event) { console.log("open"); ws.send("hello"); }; ws.onmessage = function (p1) { console.log(p1) }; ws.onerror = function(evt) { console.log("WebSocketError!"); console.log(evt); }; </script>
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

websocket消息返回错误,websocket连接第一步是消息验证
服务端需要根据客户端的Sec-WebSocket-Key生成Sec-WebSocket-Accept并按指定格式返回

https://img1.sycdn.imooc.com//5c8f53d30001799e08000733.jpg

查看完整回答
反对 回复 2019-03-18
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

websocket!=socket

你PHP代码中的socket是TCP_SOCKET,而js中的是websocket,websocket是基于http协议的。两边协议不对,不能通信

查看完整回答
反对 回复 2019-03-18
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你好。。请问解决了吗?我目前也是遇到这个问题,之前还好好地

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 618 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信