如何在Node.js服务器读取Swift客户端Socket.IO连接负载?
Socket.io:Swift客户端连接负载在Node.js服务端的获取方法
Swift客户端通过connect(withPayload: ["uid": uid])发送的连接负载,在Node.js服务端不能从socket.request中读取,正确的获取位置是socket.handshake.query对象。
修改你的服务端代码如下:
io.on('connection', socket => { const uid = socket.handshake.query.uid; console.log("收到连接,用户ID:", uid); });
说明
Socket.io Swift客户端的connect(withPayload:)方法,会将传入的负载以URL查询参数的形式附加到初始连接请求中,服务端需要通过socket.handshake.query来访问这些参数,而非直接读取socket.request。如果你的负载包含更多键值对,同样通过该对象的对应属性获取即可。
另外注意确保客户端传入的uid是字符串类型,避免服务端解析时出现异常。
内容的提问来源于stack exchange,提问作者Abdelrhman Elmahdy
相关产品推荐
相关产品推荐

