我知道SocketIO支持初始连接的查询参数,例如:
const socket = io({
query: {
token: 'cde'
}
});
这一切都很好,但是我想知道是否有一种方法可以将一些数据“附加”到客户端发送的每条消息中,以便在服务器上进行验证。
从客户端api文档来看,“ emit”方法似乎不支持任何options对象,但也许我在其他地方缺少了一些东西。
该怎么办?当然,我可以发送一些额外的数据作为发出函数的最后一个参数,然后使用arguments对象提取它,但这似乎不是一个很干净的解决方案。>
答案 0 :(得分:2)
Socket.emit与node.js的ws send类似,即它向服务器发送原始数据帧,因此将令牌作为最后一个参数附加的选项似乎合适。
要获得更清洁的解决方案,您可以采用另一种方法来抽象发射,该方法接受消息obj作为参数,然后它将令牌添加到每个请求中,最后发出它。