【问题标题】:websocket send parameter in connection?websocket在连接中发送参数?
【发布时间】:2020-11-07 00:46:34
【问题描述】:

我有一个场景,我需要使用nodejsWebsocket 创建一个非常简单的文本聊天。

我已经完成了一切设置和工作。

我现在需要允许用户在 websocket connection URL 中发送参数。

像这样:websocket = new WebSocket("ws://test-website.net:8080/?id=55");

在我的研究中,我遇到了很多类似的问题,发现我可以像上面的示例一样在 URL 中传递参数。

但是,他们都没有在server.js中提及或解释如何获取此参数(本例中为 55

wss.on('connection', function(ws) {

///I need to get the parameter here////

});

有人可以就这个问题提出建议吗?

提前致谢。

【问题讨论】:

  • 您使用的是哪个 websocket 服务器端库?
  • @ouni,我在我的问题中提到了这一点。我正在使用节点 js。
  • Node 有多个 websocket 实现,如wswebsocket...(它们不在核心)你用的是哪一个? require 声明会告诉你。
  • @ouni,我正在使用 WebSocketServer = require('ws').Server,

标签: javascript node.js websocket


【解决方案1】:

在您的 websocket 请求处理程序中,它通常作为第一个参数传递给 web socket;传入的 HTTP 请求作为 second 参数传递:

webSocketServer.on('connection', function connection(ws_client_stream, incoming_request) {
  console.log(incoming_request.url);
});

从那里,您可以使用url.parse 获取 URL 的组成部分,例如您感兴趣的查询字符串。

【讨论】:

    【解决方案2】:

    nodejs中的websocket库(websocket.js npm)

    wsServer.on('request', function(request){
        var FullURL = request.resourceURL.query;
        console.log(FullURL);
        // . . your code  . . //
    }
    

    link = wss://localhost/?param=value
    输出

    { param : 'value' }
    

    在request.resourceURL 中返回一个对象

    Url {
      protocol: null,
      slashes: null,
      auth: null,
      host: null,
      port: null,
      hostname: null,
      hash: null,
      search: '?id=65&encoding=text',
      query: { id: '65', encoding: 'text' },
      pathname: '/',
      path: '/?id=65&encoding=text',
      href: '/?id=65&encoding=text' }
    

    【讨论】:

      【解决方案3】:

      如果您使用的是“websocket”库,以下代码会检索您的查询字符串:

      wsServer.on('request', function(request) 
      {
          console.log(request.resourceURL.query);
      }
      

      注意 1:这里不需要解析任何内容。

      注意 2:虽然它已在多年前回答,但此答案适用于人们发现上述答案更复杂的情况。

      【讨论】:

      • TypeError: 无法读取未定义的属性“resourceURL”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2021-01-06
      • 2015-05-30
      • 1970-01-01
      相关资源
      最近更新 更多