You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Postman中无需监听事件接收Socket.IO client.send消息

解决Postman无需监听器接收Socket.IO服务端消息的问题

问题背景

你通过Socket.IO服务端的client.send()方法发送消息,目前在Postman中添加事件监听器后可正常接收,但希望实现类似原生WebSocket的效果——无需添加任何监听器就能自动接收所有消息。服务端现有代码如下:

const socketClients = await this.io.fetchSockets();             
socketClients.forEach((client: any) => {
  client.send(JSON.stringify(obj))
});

问题原因

client.send()是Socket.IO的封装方法,它发送的是带有message事件标识的Socket.IO协议消息。Postman的Socket.IO客户端默认不会自动监听这个事件,因此必须手动添加监听器才能捕获消息;而原生WebSocket发送的是无封装的原始数据,Postman的原生WebSocket客户端会自动监听默认的message事件并展示消息。

解决方案

方案1:发送原生WebSocket消息(推荐)

改用Socket.IO客户端实例的底层WebSocket连接对象conn的send()方法,直接发送原始数据。这样Postman使用原生WebSocket模式连接时,无需添加任何监听器就能自动在消息列表中收到内容:

const socketClients = await this.io.fetchSockets();             
socketClients.forEach((client: any) => {
  client.conn.send(JSON.stringify(obj))
});

方案2:保留Socket.IO send()方法(需Postman配置)

如果必须保留现有Socket.IO的send()逻辑,那么Postman需要选择Socket.IO请求类型,并手动添加对message事件的监听器——这是Socket.IO协议的固有特性,无法绕过。


内容的提问来源于stack exchange,提问作者Rustam Ansari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:15:22