GatewayWorker wss设置求助

frontlon

我参考http://doc2.workerman.net/326160这个文档设置wss。
已经注册了免费证书,开放了4431端口。但是无法连接。
请问:
经过确认,4431端口已经开放,从外网telnet可以访问。确认不是防火墙问题。

但我的php版本是5.5,不清楚是不是这个原因。

我看手册说,如果是微信小程序连接,必须要求php5.6,请问仅是web浏览器连接,是否必须是php5.6版本吗?

请问wss连接失败又错误日志吗?如果有的话,请问在什么位置?

4635 12 0
12个回答

walkor

无法连接客户端会有报错,贴下报错。
服务端用debug方式运行,看下服务端报错。

web浏览器不要求php5.6

  • frontlon 2018-03-14

    谢谢大神,经过查看日志,貌似有点眉目了。发现后台连接4431成功了。connection is ok

    但是前台js显示有问题,且连接成功率不高、并且很慢。我估计是前台js的设置问题。
    我检查下js。

    请问ws改成wss后,除了url协议前缀以外,前台的websocket连接方式用进行修改吗?

  • walkor 2018-03-14

    没有别的修改

  • frontlon 2018-03-14

    @1:有新的回复

frontlon

walkor大哥还得麻烦你帮小弟看看~。

经过测试和一下午的研究,还是无法连接。偶尔日志中显示 connection is ok。但依然无法进行其他数据传输。
多数时候都无法连接。下面图片是我的服务器状态和wss程序代码。代码顶部use部分可能截图不全,但程序肯定是没有错误的。

在php start.php status中
4431的几个进程,第一次查看,是有值的,但是第二次查看,就都变成N/A了。

  • 暂无评论
frontlon

补充日志:

connection is ok 有,但是ok之后马上就会close。
不知道是什么情况~~

正常情况下应该是连接成功后,会自动下发一条成功消息。现在也没有下发。

  • 暂无评论
frontlon

PHP openSSL 扩展版本:

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.2k-fips 26 Jan 2017
OpenSSL Header Version => OpenSSL 1.0.2k-fips 26 Jan 2017

  • 暂无评论
walkor

服务端用debug方式运行,看下服务端报错

  • 暂无评论
frontlon

这个是debug模式的信息。
连接成功显示 connect is ok。但是马上就断开连接。
没有任何信息返回。正常情况下,连接成功,会有消息返回。

  • 暂无评论
frontlon

有过测试
如果证书文件正确,则会自动close。
如果证书文件错误,则不会close。

以下图片是证书路径错误嗲的显示结果:

  • 暂无评论
walkor

4431端口的进程设置为1,然后重启workerman。

php start.php status 找到4431端口的进程pid。
运行命令
strace -p pid
然后连。
当php start.php status里看到这个进程busy的时候,截图下strace的结果

  • 暂无评论
frontlon

walkor大哥,这是strace数据。一直在疯狂输出。所有的数据都一样。所以我截了一部分。

  • 暂无评论
walkor

这个问题没有遇见过。看下是否更改了workerman源码,重新下载一份workerman试下。
如果还有问题就用nginx代理wss,worekrman手册上有。

  • frontlon 2018-03-15

    源码核心没有改过,但是一些小地方修改过。我下一份原版试试。

  • frontlon 2018-03-15

    请问现在的日志是什么情况?能大致告诉我一下吗?我看不太懂~

  • walkor 2018-03-15

    有探测到连接上有数据发来,但是没调用read去读取数据

frontlon

换了原版有错误日志了!!

  • 暂无评论
walkor

local_cert 没设置,或者对应的文件不存在,建议你写死试下,不要用变量传递

  • 暂无评论
年代过于久远,无法发表回答
🔝