【问题标题】:Socket IO query parametersSocket IO 查询参数
【发布时间】:2016-06-19 09:26:39
【问题描述】:

这是一个关于 Socket IO 的一般问题,我有点不熟悉。我看过一些教程和示例,他们调用的似乎是查询 socket.io 服务器,类似于:

https://example.com/socket.io/1/?userid=j568mfkkl3ow29&msgEvent=RTCMultiConnection-Message&socketCustomEvent=RTCMultiConnection-Custom-Message&EIO=3&transport=polling&t=LLZpEfU

网址中的 /1/ 是什么?我查看了服务器代码,但没有看到任何需要它的代码。有时在我的客户端库中,查询没有那个 /1/。那个参数有什么作用?

有时这个 /1/ 不是从客户端发送的。我仍然没有弄清楚为什么有时会发送或有时不会发送此参数。有人能解释一下它的作用吗?

希望对我的调试有所帮助。

一个例子是https://github.com/muaz-khan/RTCMultiConnection,视频会议演示。

【问题讨论】:

  • 您有包含/1/ 的项目示例吗? (顺便说一句,这不是查询参数;它是路径的一部分。)
  • 我添加了一个例子

标签: node.js sockets socket.io rtcmulticonnection


【解决方案1】:

我相信这只是版本差异。看起来像 pre-1.0,socket.io 在路径中使用了“协议”版本。见https://github.com/socketio/socket.io-client/blob/f0e877da3c48eedb399d9ebd5d55cc6888a5ace0/lib/transport.js#L222-L229

Transport.prototype.prepareUrl = function () {
  var options = this.socket.options;

  return this.scheme() + '://'
    + options.host + ':' + options.port + '/'
    + options.resource + '/' + io.protocol
    + '/' + this.name + '/' + this.sessid;
};

io.protocol 在 0.9.6 中,您给出的示例中的版本是 1

我认为较新版本的 socket.io 不会将此作为 URL 路径的一部分。

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多