Azure Web App配置页无Web sockets选项 如何启用WebSocket支持
Azure Web App 配置页找不到Web Sockets选项的解决方案
关于是否为平台显示错误的说明
这不属于平台显示错误。
你看不到Web Sockets配置开关的核心原因是:目前Azure新创建的Linux系列Web App、以及所有使用v3及以上版本定价层(Basic v3/Standard v3/Premium v3/Premium v4等)的Web App,已经默认全量开启WebSocket支持,旧版手动控制WebSocket开关的配置项已经从这类实例的配置页面移除,属于正常的产品迭代调整,不是页面加载故障或者平台bug。
正确启用socket.io所需WebSocket能力的操作步骤
- 第一步:确认实例类型
如果你使用的是Linux托管Web App、或者v3及以上定价层的Windows实例,不需要手动开启WebSocket开关,平台默认已经提供支持,直接完成后续应用适配即可。 - 第二步:旧版实例无配置项时的开启方式
如果你使用的是Windows系统下的非v3旧定价层实例,找不到页面开关可以通过以下两种方式开启配置:- 命令行方式:打开本地Azure CLI或者门户内的Cloud Shell,执行以下命令,替换占位符为你的实例实际信息即可:
az webapp config set --name <你的Web App实例名称> --resource-group <实例所属资源组名称> --web-sockets-enabled true - 资源编辑器方式:在Web App门户页搜索进入「资源浏览器(Resource Explorer)」,导航到
config > web节点,找到webSocketsEnabled字段将值修改为true,点击保存后重启应用生效。
- 命令行方式:打开本地Azure CLI或者门户内的Cloud Shell,执行以下命令,替换占位符为你的实例实际信息即可:
- 第三步:socket.io适配配置(必须完成,否则即使开启WebSocket也可能连接失败)
- 服务端监听端口不要写死,必须监听Azure动态分配的端口:
const port = process.env.PORT || 3000;,将服务绑定到这个端口上。 - 如果你的Web App前面挂了CDN、应用网关或者Front Door服务,需要在对应服务层开启WebSocket透传,允许
Connection: Upgrade和Upgrade: websocket请求头透传到后端应用。 - 建议将socket.io客户端的心跳间隔配置为小于4分钟,避免触发Azure Web App默认的WebSocket空闲超时策略导致连接被强制断开。
- 服务端监听端口不要写死,必须监听Azure动态分配的端口:
相关截图参考:
当前无Web Sockets配置项的页面:
旧版带Web Sockets配置项的参考页面:
内容的提问来源于stack exchange,提问作者DragonPow
相关产品推荐
相关产品推荐



