生活知识集
第二套高阶模板 · 更大气的阅读体验

WebSocket使用什么端口

发布时间:2025-12-10 23:09:19 阅读:226 次

平时我们在刷网页、看直播或者玩在线小游戏的时候,可能没注意到背后有一种叫 WebSocket 的技术在默默工作。它能让浏览器和服务器之间实时通信,比如聊天消息秒发秒收,就是靠它实现的。

常见的默认端口

WebSocket 本身没有固定端口,但它通常会沿用 HTTP 和 HTTPS 的端口号。也就是说,如果你访问的是普通网站(http://),它走的是 80 端口;如果是加密网站(https://),那就走 443 端口。这两个是最常见的。

举个例子,你在用某个在线客服系统时,页面地址是 https://example.com/chat,那它的 WebSocket 连接大概率是通过 443 端口建立的,写法类似:wss://example.com/socket。这里的 wss 就代表加密的 WebSocket,对应 HTTPS;而 ws 则是非加密的,对应 HTTP,默认走 80 端口。

自定义端口也能用

有时候开发测试或者内网服务,会看到不一样的端口。比如你在家搭了个智能家居控制面板,页面连的是 ws://192.168.1.100:8080,这里明显用了 8080 这个自定义端口。这种情况在本地调试特别常见,只要前后端约定好就行。

实际开发中,Node.js 搭建 WebSocket 服务时可能会这么写:

const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 3000 });

server.on('connection', (socket) => {
  console.log('客户端已连接');
  socket.send('欢迎使用 WebSocket 服务!');
});

这段代码就把服务跑在了 3000 端口上,只要防火墙允许,设备能访问到这台主机,就能正常通信。

防火墙和代理的影响

虽然理论上可以随便选端口,但公司网络或公共 Wi-Fi 往往会限制非标准端口。比如你在外连咖啡厅 Wi-Fi,发现某个 WebSocket 应用连不上,很可能是路由器把 8080、3000 这类“非常见”端口给拦了。这时候换成 80 或 443 就容易通。

另外,Nginx 反向代理配置里也常做 WebSocket 转发,把外部请求从 443 映射到内部的 8080,对外看起来还是走的标准端口,用户无感。