0

这是一个关于 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

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

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

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

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

4

1 回答 1

0

我相信这只是版本差异。看起来像 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 路径的一部分。

于 2016-06-19T01:26:39.867 回答