swoole加密php教程,Swoole启用ssl加密websocket的坑

swoole就像其官网的口号一样,重新定义了PHP,很是强大,但同样也以文档不全著称,对新手不是很友好,基于在基官网文档的下边有网友说看着这文档想骂人。因为项目需要用到也开始了淌坑之旅,经过一周日以继夜的捣腾,目前算是勉强上手了,但碰到个死活没解决的问题。在经历二天一夜,用尽各种方法,搜遍国内外文档,没解决之后,愤而转用workerman,把锅甩给了swoole。转用workerman也碰到同样的问题时,我开始怀疑我的人生,怀疑我是不是与wss无缘。沮丧之际,Firefox浏览器控制台上的一个提示标记提醒了我,才突然醒悟——发现是低级错误,特分享出来,大家别再踩我中过的雷!

现况和问题:

ws普通版websocket服务端已部署,通过client.htm客户端连接无误;

wss加密版websocket服务端启用后,通过client.htm客户端连接一直报错;

(可恶的)Chrome浏览器一报错为:

WebSocket connection to 'wss://111.111.111.111:9501/' failed: Error in connection establishment: net::ERR_INSECURE_RESPONSE

(anonymous) @ client.html:23

client.html:49 Error occured: undefined

client.html:39 Disconnected

环境:

php7、swoole

解决方法:

因为平常用Chrome调试,但可恶的Chrome并没有给出直接原因,由于开窗口太多,我无意打开了Firefox浏览器,并顺带测试了一下,却让我眼前一亮,突然醒悟过来,发现问题之所在了。

Firefox的直接提示为:

Firefox 无法建立到 wss://112.124.23.149:9501/ 服务器的连接。

但切换到网络面板后发现如图提示:

1a2f920f630b?from=timeline

360截图20170630103356527.jpg

点击后提示头文件信息:

1a2f920f630b?from=timeline

360截图20170630103454599.jpg

至此幡然醒悟!

由于之前成功调试时用的是非加密的ws方式websocket,所以在客户端用形如wss://111.111.111.111:9501/的连接地址是没有任何部题的;

而之后用的是加密的wss方式,因此问题就来了,这个证书是我以某个域名的形式申请下来的,所以也要用此域名来作为服务器的请求地址才行,把客户端的连接地址改为wss://xxx.xxx.com:9501/后即解决问题。

被坑哭了……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值