通过php自带的socket连接workerman 聊天室框架

0

目前一个一个web页面,我想通过php socket握手失败
返回400


<?php
//error_reporting(E_ALL);
$service_port = 15221;
$address = '125.67.237.106';

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "创建失败:" . socket_strerror(socket_last_error()) . "<br />";
}

$result = socket_connect($socket, $address, $service_port);
if($result === false) {
echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "<br />";
}

$in = '{"type":"login","client_name":"hekun","room_id":1}';

$out = "";
socket_write($socket, $in, strlen($in));

while ($out = socket_read($socket, 8192)) {
echo $out;

}
socket_close($socket);
已邀请:

walkor

赞同来自:

你连的应该是websocket端口,websocket协议有握手过程,并且需要按照websocket协议格式的数据才能被解析,看你的程序直接用socket发送的数据是不符合websocket协议,自然会返回错误。


gateway/worker模式中,可以新开一个非websocket的端口,比如Text协议的端口或者干脆tcp协议的端口,Text协议可以用telnet去调试。


多协议支持可以看下 手册
http://doc3.workerman.net/advanced/multi-protocols.html


这个估计对你也有用
http://doc3.workerman.net/advanced/push.html

要回复问题请先登录注册