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

本文详细介绍了如何在Apache服务器上通过proxy_wstunnel_module启用SSL并配置代理,以支持微信小程序的无状态Socket(wss)连接。步骤包括加载模块、配置SSL、创建代理规则和测试,以及在小程序后台添加服务器域名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

小程序端要求使用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://域名添加到服务器域名中即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值