程序地带

基于websocket的小程序端即时通信系统开发(一):创建wss服务


背景

小程序端要求使用wss且不能带端口,因此虽然搭建完websocket,并能在app端运行,但还不能在小程序端运行,需要在后端创建wss。


1准备工作

本章内容参考《wokerman手册》常见问题-创建wss服务、《GatewayWoker手册》常见问题-创建wss服务。


手册提供了一种简单的开启wss服务的方法:直接用GatewayWoker开启SSL。但用这种方法,在前端连接websocket时的url会带端口,小程序并不支持。


因此需要使用《wokerman手册》提出的另一种方法:利用nginx/apache代理wss。


使用这种服务器代理wss的方法,则不能使用前面直接用GatewayWoker开启SSL方法。


本人的服务器是apache。


1.1启用 proxy_wstunnel_module 模块(httpd.conf)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
1.2配置SSL及代理
#extra/httpd-ssl.conf
DocumentRoot "/网站/目录"
ServerName 域名
# Proxy Config
SSLProxyEngine on
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:8282/wss
ProxyPassReverse /wss ws://127.0.0.1:8282/wss
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /server/httpd/cert/your.pem
# 证书私钥配置
SSLCertificateKeyFile /server/httpd/cert/your.key
# 证书链配置,
SSLCertificateChainFile /server/httpd/cert/chain.pem

如果已经创建了https,那么应该只添加这几行代码:


# Proxy Config
SSLProxyEngine on
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:8282/wss
ProxyPassReverse /wss ws://127.0.0.1:8282/wss

重启服务器。


1.3测试

在Chrome浏览器中按F12,在Console中测试。


注意:url不能使用ip地址了,应使用创建https的那个域名。


// 证书是会检查域名的,请使用域名连接
ws = new WebSocket("wss://域名/wss");
ws.onopen = function() {
alert("连接成功");
ws.send('tom');
alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服务端的消息:" + e.data);
};
1.4小程序开发设置

最后还要在小程序后台,把wss://域名添加到服务器域名中即可。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiaosuom/article/details/111246228

随机推荐

学习笔记-kali中配置python编写环境

安装python编程环境1.Python运行环境验证和安装:在命令输入框中输入python显示kali自带的python版本2.AptanaStudio3安装...

pikaq-M 阅读(606)

嘿,你今天说“谢谢”了吗?(文末有福利)

嘿,你今天说“谢谢”了吗?(文末有福利)

冬天来了骤降的气温、蔓延到头顶的萧瑟在寒冷的11月26日你大概需要一点点温暖暖心感恩是你此时此刻的必备热源感恩家人的准时准点穿秋裤提醒感恩朋友的热乎乎麻辣火锅局感恩自己每天早上离开被窝的坚定感恩冷风中...

mobilehub 阅读(882)

SAP PM 入门系列6 - PM常用表

SAPPM入门系列6-PM常用表 Equipment设备相关的数据表EQUI:EquipmentmasterdataEQKT:Multilingualequipmentshorttexts,longt...

喜欢打酱油的老鸟 阅读(471)