如何在 uWebSockets.js 中获取套接字路径?

Posted

技术标签:

【中文标题】如何在 uWebSockets.js 中获取套接字路径?【英文标题】:How to get the socket path in uWebSockets.js? 【发布时间】:2021-04-05 14:16:38 【问题描述】:

在我基于 uWebSocket.js 的服务器上,我使用的是参数化路径,例如 /socket/:name

如何捕获实际使用的路径?

例如,如果套接字连接到/socket/one,我希望能够提取one 字符串,或者至少获取路径以便我可以手动提取路径参数。

【问题讨论】:

【参考方案1】:

根据this comment 计算出来。在此处复制粘贴解决方案。您需要使用 ws 升级处理程序来传递来自原始 http 请求的值:

// pass values from ws upgrade handler
uws.App().ws('/', 
   upgrade: (res, req, context) => 
      res.upgrade(
          ip: res.getRemoteAddressAsText() , // 1st argument sets which properties to pass to ws object, in this case ip address
         req.getHeader('sec-websocket-key'),
         req.getHeader('sec-websocket-protocol'),
         req.getHeader('sec-websocket-extensions'), // 3 headers are used to setup websocket
         context // also used to setup websocket
      )
   ,
   open: ws => 
      console.log(ws.ip)
   
)

【讨论】:

以上是关于如何在 uWebSockets.js 中获取套接字路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在服务器中配置套接字 io 以从 ios 套接字获取确认(SocketIOCallback)

如何在 Unix 套接字编程中获取本地 IP 地址和端口?

如何使用python套接字从html获取输入

如何从 Django Channels Web 套接字数据包中获取当前用户?

ZeroMQ:如何获取连接客户端的地址?

我如何通过角度向套接字服务器发送数据和获取数据