在你的网站或在线客服系统中布署了https后,如果你想使用websocket服务通信,你就会发现由于服务器端还是使用的http协议,而你浏览器端又使用的是https协议,这样就会造成浏览拒绝响应服务器。
报错内容如下:
如果你需要继续使用wss,那就只能按下面两种方法开通了
①. 下载SSL 证书
首先要知道的是:证书一般是与域名绑定的
对于获得 SSL 证书的方式可能有所不同,以我为例:
我在阿里云下载了证书(pem/crt 文件及 key文件)放在【gatewayWorker 服务器】的磁盘目录
②. 然后修改了【gatewayWorker 服务器】中的 start_gateway.php文件,以支持 WSS 服务
同时,我选用的并非手册推荐的【443】端口,而是 【8283】
④. 客户端连接测试
如此一来,客户端的连接代码为:var ws = new WebSocket("wss://mozxx.fetow.com:8283");
①. 首先就是对 【gatewayWorker 服务器】中 start_gateway.php文件的处理
为了对比,此处鄙人设置的是端口【8284】
如果你是用了下载的压缩包,此处其实也就只是改了一下端口号 (建议跟第一种方式的操作代码进行对比研究)
②. 安装并进行 Nginx 网站的配置操作
因为鄙人使用的是 【宝塔(Linux) 面板管理系统】,操作起来要方便一点
首先便是创建站点 (其中添加的域名来源,便是第一种方式中提及的 【步骤 ③. 解析域名】)
然后,便是 SSL 证书的配置
(图示为使用【宝塔管理系统】的界面,只是为了方便操作,根据手册上的介绍也可以实现,毕竟目的是一样的)
最后,便是在配置文件中,补充一个 wss 的代理入口 (鄙人定的入口为 "moz_wss")
注意: 一切配置完毕,要重启 Nginx 服务
③. 此方式,要求对端口【443】的开放
如果是 阿里云服务器 ,还需要进行 安全组的设置
④. 客户端连接测试
如此一来,客户端的连接代码为:var ws = new WebSocket("wss://mozxx.fetow.com/moz_wss");
【附录】
每次修改 "start_gateway.php" 文件后,要对 【gatewayWorker 服务器】的 workerman 进行重启操作
【两种方式,都需要进行 域名解析的绑定操作 】
注意,是 对 【gatewayWorker 服务器】IP 的绑定 ,之前因为手册没有提及,一直忘做了这一步
【注意要进行防火墙的设置】
尤其,如果是 阿里云服务器 ,还需要进行 安全组的设置 (鄙人就是总卡在这里忘记 !!!)
测试发现,如果配置完成 WSS 服务
此时不管客户端网络协议为 【http】还是 【https】, 连接方式都为上面的代码,皆可成功连接 !
此文来自https://www.changliaokf.com/detail/servicecode/25.html畅聊在线客服
如何在workernam或gatewayworker中启用WSS 服务
原文:https://www.cnblogs.com/changliaokf-com/p/14716616.html