关于GatewayWorker遇到问题的总结

http://doc2.workerman.net/
总结一下去年的某个项目遇到的问题,记录的有些晚了,还好当时有记录,跟大家分享一下遇到的问题。
这个项目使用ThinkPHP5搭建GatewayWorker客服聊天遇到信息不能同步的问题。
第一步:先确定网站使用的是TLS1.2协议
TLS 1.2

第二步:由于这个网站是微信公众号里的网页,网站协议是HTTPS,因为 https必须使用wss连接websocket,所以先升级ws协议为wss协议。(查看手册)

第三步:查看GatewayWorker的workerman版本是否符合,因为我这里的workermanb版本低于3.3.7,所以这里我选择了通过nginx代理(具体配置信息可参考手册【http://doc.workerman.net/faq/secure-websocket-server.html】)
版本
这里贴上我的配置

location /chat {
    
    
		proxy_pass http://wss_svr;
		proxy_redirect default;
		proxy_set_header Host $host;
		proxy_set_header X-Real_IP $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection upgrade;
		proxy_connect_timeout 4s;
	    proxy_read_timeout 60s;
	    proxy_send_timeout 12s;
		proxy_buffering on;
		proxy_buffer_size 4k; 
		proxy_buffers 8 1M;
		proxy_busy_buffers_size 2M;
		proxy_max_temp_file_size 0;
	}
	
	location / {
    
    
		proxy_redirect off;
		#proxy_pass http://wss_svr;
		proxy_set_header Host $host;
		proxy_set_header X-Real_IP $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection upgrade;
		
		try_files $uri $uri/ /?$args;
	}

第四步:配置好之后 把ws协议换成wss协议还是有问题 连接不上websocket…于是然后把GatewayWorker升级了一遍 还是有问题
然后把vendor/GatewayWorker/Applications移动到根目录,连接正常 。
结果还没完…时而连接上时而连不上 连消息也丢失严重,心态崩了…

第五步:把所需的端口都开放 防火墙也开放所有需要的端口 …
端口
无果…
最后安装上php的sockets 扩展,成功!后续如果并发高 可安装上event扩展。

可在控制台打开任意页面,
var wss = new WebSocket (‘wss://192.168.213.182:443’);
如果不报错,提示undefined就是连接成功啦。
或去在线测试网站测试是否连接上Websocket.

猜你喜欢

转载自blog.csdn.net/sodium_/article/details/105758854