function uuid()
{
$chars = md5(uniqid(mt_rand(), true));
$uuid = substr ( $chars, 0, 8 ) . '-'
. substr ( $chars, 8, 4 ) . '-'
. substr ( $chars, 12, 4 ) . '-'
. substr ( $chars, 16, 4 ) . '-'
. substr ( $chars, 20, 12 );
return $uuid ;
}
$worker->onWorkerStart = function($worker){
$con = new AsyncTcpConnection('ws://vop.baidu.com/realtime_asr'.'?sn='.uuid());
大家看可以连接这个地址试一下。 我怎么实验都不行。 baidu接口
说明这个地址不支持websocket协议。
眼中程序这个工作 的门槛就这么低么。我即使不会编程 ,链接能不能连 都不知道,就来论坛问问题?。。
眼中程序这个工作 的门槛就这么低么。我即使不会编程 ,链接能不能连 都不知道,就来论坛问问题?。。
我通过浏览器测试你的代码也是连不上你发的地址,报错
这个报错说明返回的http头中缺少Sec-WebSocket-Protocol这个字段。说明这个地址不支持websocket,或者更严谨的说法,这个地址不支持标准的websocket。
因为你的最后2个截图是后发的,开始你没有说明这个地址官方说明文档,只给了个测试地址及参数让大家帮测试。所以我根据报错和仅有的地址信息给出了一个简单的结论 “这个地址不支持websocket”。如果我之前的结论造成了你的不满甚至愤怒,我表示抱歉,这并非我本意。不过这个地址确实不支持标准的websocket,连基本的浏览器都连接失败。
我用php 其他库 比如 swoole 的websocket ,和 一些 github websocket 类库 都能连接。 用python的 标准类库 也能连接, 因为 我和 workerman gateway 也打交道 很多年了,也非常感谢 开源的大佬们, 不过这的确也存在一些 兼容性问题。无论如何 还是希望能改进吧。
我这里用workerman测试没有问题。应该是你哪里用错了。
输出 onWebSocketConnect
我测试题示地址完全是OK的,另外Workerman version:3.5.23 、PHP version:7.2.8
大版本和你的基本没出入,所以不应该有这种问题, 参考下看吧;
附连接成功的抓包图:
请教一下, 如何设置才能连接上 呢。 能否给各测试的 代码
没有什么需要特别设置的,直接在onWorkerStart写:
$con = new AsyncTcpConnection('ws://vop.baidu.com/realtime_asr'.'?sn='.uuid());
$con->onConnect= function($connection){
};
$con->onClose= function($connection){
};
$con->onError= function($connection, $code, $msg){
};
$con->connect();
哦,哪一样的。 不过能否截一个 正常 命令行 运行后的 黑窗口图。 因为我发的那个运行图, 的确提示 wec-WebSocket-Accept not found
@4524:贴图上下面查看。
@614:大哥看到信息尽快回我微信
截图DEMO:
我试了一下, 一旦开始发送开始帧 就会提示我那个错误。 用其他库 我试了下 貌似没事。
$connecton->send() 第二个参数为啥是true,不能为true, 干掉。