WebSocket 根据初始请求向服务器发送数据
Posted
技术标签:
【中文标题】WebSocket 根据初始请求向服务器发送数据【英文标题】:WebSocket send data to server on initial request 【发布时间】:2021-10-15 22:24:33 【问题描述】:就像标题在客户端第一次请求时所说的那样,我想将客户端 ID 发送到服务器。
var userId = "userId"; var ws = new WebSocket("wss://serveradress?clientId")
是否可以通过查询字符串或其他方式传递初始请求中的数据。
欣赏每一个想法,谢谢!
【问题讨论】:
【参考方案1】:根据the docs,您可以调用 websocket onopen 方法。然后在回调中使用websocket send方法发送数据
websocket.onopen = function()
websocket.send(your data)
要接受传入的消息服务器端只需接受请求。这是假设您使用的是websocket-node
ws.on('request', (request) =>
const conn = request.accept('echo-protocol', request.origin)
conn.on('message', (message) =>
console.log(message)
)
)
如果您使用的是this package,那么只需监听“消息”事件即可。
ws.on('message', (message) =>
console.log(message)
)
【讨论】:
谢谢!但是如何处理服务器站点上的数据? 我已经编辑了我的答案。如果您为 websockets 服务器端使用不同的包,这将不起作用。我建议使用github.com/websockets/ws 看起来不错,但现在的输出是 type:'utf8', utf8Data:'userId'。如何仅提取用户 ID 以将其传递给变量?? 我强烈建议阅读我发布的链接。并且还使用我提到的其他库。但是根据文档,您可以通过 message.utf8Data 访问它以上是关于WebSocket 根据初始请求向服务器发送数据的主要内容,如果未能解决你的问题,请参考以下文章
websocket——通信梳理(短轮询、长轮询、socket、websocket、socket.io)