【问题标题】:emit url query string using socket.io使用 socket.io 发出 url 查询字符串
【发布时间】:2020-04-13 13:56:55
【问题描述】:

当用户填写表单数据,其中有一个输入名为 'uname' ,提交表单后,表单数据通过 socket.io 发送到服务器,用户被定向到 '/website.html ' 并且表单数据被附加到像http://localhost:3000/website.html?uname=rohan这样的url。

在 '/website.html' 中,有一些按钮都指向其他一些 html 文件,当我们单击这些按钮时,就会建立一个新的套接字连接。

我只希望当我们单击“/website.html”中的按钮时,服务器会将http://localhost:3000/website.html?uname=rohan 中附加的“uname”值发送给客户端。 附言我知道单击“/website.html”中的按钮会建立不同的套接字连接,这与提交表单以将表单数据发送到服务器后建立的套接字连接不同。

【问题讨论】:

  • 请提供更多信息,说明您想要实现的目标以及原因,您的问题不清楚。
  • 我已经对其进行了编辑并试图使其更清晰。 .请帮忙!

标签: javascript node.js socket.io


【解决方案1】:

如果我正确理解了您的问题,那么您需要先设置路由器连接。如果设置正确,例如当您单击按钮时,它至少会使用查询字符串提取正确的页面。

然后您可以做的是设置您的前端以从查询字符串中读取参数以执行您需要它执行的相应操作。

您还没有真正说出您的特定堆栈是什么,因此我可以为您提供尽可能多的信息。

【讨论】:

  • 感谢您的回复!但我使用passport.socketio解决了这个问题。 .在其中,.req.session.user 会给我用户详细信息。
【解决方案2】:

万一其他人来这里,有一个客户端解决方案。

为了在连接和后续发射中保持查询参数,您可以像这样连接套接字:

var socket = io.connect('http://localhost:8890?query=foobar', {path: "mypath"});

使用显示的可选路径,并且未来的套接字发出它会自动将查询字符串移动到正确的位置并像这样查询 url:

http://localhost:8890/mypath/?query=foobar&EIO=3&transport=polling...

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 2016-09-25
    • 2011-01-17
    • 1970-01-01
    • 2016-02-12
    • 2013-02-05
    • 2012-05-12
    • 1970-01-01
    • 2019-07-22
    相关资源
    最近更新 更多