微信小程序服务器域名的wss配置,核心就三步:域名备案并解析、服务器启用SSL并反向代理WebSocket、微信公众平台socket合法域名填wss://你的域名。 微信不会直接连IP或非标端口,它只认已备案域名和受信任证书,下面按实操路径拆开讲。
微信小程序socket合法域名怎么填?wss与https域名有什么区别
微信小程序的网络请求分几类,配置入口都在微信公众平台,登录后进入 开发 -> 开发管理 -> 开发设置 -> 服务器域名,你会看到request合法域名、socket合法域名、uploadFile合法域名、downloadFile合法域名。
wss对应的是 socket合法域名,用于WebSocket长连接,https对应request、uploadFile、downloadFile,两者可以共用同一个域名,但协议和用途不同。
| 类型 | 协议 | 配置项 | 典型用途 |
|---|---|---|---|
| wss | WebSocket Secure | socket合法域名 | 聊天、实时推送、协同操作 |
| https | HTTPS | request合法域名 | 接口请求、数据提交 |
| https | HTTPS | uploadFile/downloadFile | 文件上传下载 |
填写时注意几个硬规则:
- 只能填 wss://example.com 这种域名格式。
- 不能填IP地址、localhost。
- 不能在合法域名里带端口,生产环境默认走 443。
- 不能填路径,路径放在代码里的连接地址中。
- 域名必须完成ICP备案,这是国内小程序上线的硬门槛。
业内专家指出,开发者工具可以临时勾选“不校验合法域名”,但真机调试和正式版一定会校验,开发者工具能连,不代表真机能连。
微信小程序wss域名必须备案吗?国内服务器和海外服务器怎么选
据工信部规定,国内提供互联网信息服务需要完成ICP备案,微信官方文档也明确要求小程序服务器域名经过备案,如果你的小程序面向国内用户,wss域名必须备案。
国内服务器和海外服务器的选择很直接:
- 国内服务器
- 海外服务器:免备案,但微信小程序生产环境通常无法通过合法域名校验,即使能临时调试,正式发布也可能被拦截。
- 香港服务器:部分场景可免备案,但微信合法域名校验仍可能不通过,不建议作为生产环境首选。
成本上,域名每年几十元,免费DV证书可以做到0元,云服务器每月几十到几百元不等,真正花时间的是备案和证书部署,不是买服务器。
服务器端wss怎么配置?Nginx反向代理WebSocket实操
假设你已经有一个备案域名 example.com,解析到服务器,Nginx已安装,SSL证书已准备好,后端WebSocket服务监听 0.0.1:9501,推荐用Nginx做TLS终止和反向代理。
编辑Nginx配置,典型片段如下:
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
location /wss {
proxy_pass http://127.0.0.1:9501;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s;
}
}
保存后执行:
nginx -t nginx -s reload
然后在微信公众平台socket合法域名中填 wss://example.com,小程序代码里连接:
wx.connectSocket({
url: 'wss://example.com/wss'
})
注意,合法域名不填路径,代码里的url可以带 /wss,路径要和Nginx的location匹配。
wss连接超时和400错误排查清单
连接失败时,按下面顺序查,多数问题能快速定位:
- 证书是否受信任:
openssl s_client -connect example.com:443 -servername example.com,看证书链是否完整。 - Nginx是否转发Upgrade头:缺少
和Upgrade
Connection会导致400。 - 后端服务是否支持WebSocket:普通HTTP接口不能直接当wss后端。
- 域名解析是否正确:
ping example.com或dig example.com。 - 微信后台是否保存:保存后重启开发者工具,真机重新进入小程序。
- 是否用了IP或端口:合法域名不支持,连接地址也尽量不要写非标端口。
- TLS版本是否过低:建议开启TLS 1.2和1.3。
- 路径是否一致:Nginx是
/wss,代码也应是/wss。 - 心跳是否设置:长时间无消息可能被中间设备断开。
微信小程序端wss代码怎么写?wx.connectSocket与SocketTask
微信小程序连接wss,推荐用 SocketTask,方便管理单例、监听和关闭。
const socketTask = wx.connectSocket({
url: 'wss://example.com/wss',
header: {
'content-type': 'application/json'
}
})
socketTask.onOpen(() => {
console.log('wss connected')
socketTask.send({ data: JSON.stringify({ type: 'ping' }) })
})
socketTask.onMessage((res) => {
console.log('message', res.data)
})
socketTask.onClose(() => {
console.log('closed')
})
socketTask.onError((err) => {
console.error('wss error', err)
})
生产环境还要加两件事:
- 心跳保活:定时发送ping,服务端回pong,超时后重连。
- 单例管理:全局维护一个SocketTask,避免页面反复创建连接。
微信小程序wss和https域名可以共用吗?证书与端口怎么安排
可以共用,同一个Nginx server监听 443,用不同location区分:
location /api反向代理到HTTP接口。location /wss反向代理到WebSocket服务。
证书共用一张,微信后台分别填:
- request合法域名:
https://example.com - socket合法域名:
wss://example.com
这样做的好处是域名统一,证书管理简单,备案信息也一致,注意微信后台修改次数有限,具体以平台为准,配置前先规划好路径。
深圳微信小程序wss配置多少钱?外包与自建成本对比
深圳地区做小程序开发的团队多,wss配置的报价差异也大,如果服务器、域名、证书都已就绪,只做Nginx反向代理和微信后台配置,多数团队按人天报价,简单配置通常在几百元到千元级,若包含域名备案、服务器采购、后端WebSocket开发、心跳重连和压测,整体项目可能到几千到数万元。
| 方式 | 适合场景 | 成本构成 | 注意点 |
|---|---|---|---|
| 自建 | 有运维基础 | 域名+服务器+证书 | 需备案,需自己排查 |
| 外包 | 无运维团队 | 人天或项目报价 | 确认交付配置文档 |
| 混合 | 已有后端,只缺wss | 单次配置费 | 确保证书和Nginx可维护 |
行业共识认为,wss配置本身不复杂,复杂的是证书链、备案、Nginx转发和真机校验,把这几项对齐,成本主要花在合规和运维,而不是代码。
wss配置不是只填一个域名,而是域名备案、SSL证书、Nginx反向代理、微信后台四件事对齐,按清单逐项验证,大多数连接问题都能在较短时间内定位。
微信小程序服务器域名的wss配置Q&A
wx.connectSocket提示“不在以下socket合法域名列表”怎么办?
先检查微信公众平台socket合法域名是否填了 wss://example.com,不能带路径、端口、IP,保存后重启开发者工具,真机需要重新进入小程序,若仍报错,确认域名已备案且证书受信任。
wss配置后连接超时如何排查?
用openssl s_client检查证书链,用nginx -t检查配置,查看Nginx的error.log,确认Upgrade和Connection头已转发,确认后端服务监听正常,确认微信后台域名与代码url的域名一致,真机调试可在开发者工具Network面板观察握手过程。
微信小程序wss可以用IP地址或带端口吗?
不可以,微信小程序socket合法域名不支持IP地址和localhost,也不支持在合法域名中配置端口,生产环境应使用已备案域名、443端口和受信任SSL证书。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/702809.html




