Socket.IO 命名空间,调用未定义函数 .of()

Posted

技术标签:

【中文标题】Socket.IO 命名空间,调用未定义函数 .of()【英文标题】:Socket.IO namespace, call to undefined function .of() 【发布时间】:2011-06-25 01:17:42 【问题描述】:

我正在使用 Node.JS 0.4.8 和 Socket.IO 0.7.2。

我从他们的网站上复制了这段代码:

var socket = io.connect('http://localhost:8000'),
    chat = socket.of('/chat');

但是,当我执行它时,我从 FireBug 收到此错误。

socket.of is not a function
     chat = socket.of('/chat'); 

我也可以很好地连接命名空间:

var socket = io.connect('http://localhost:8000/chat');

我做错了什么??

提前致谢

弗雷泽

【问题讨论】:

你是否包含了 socket.io 脚本的脚本标签?您是否在服务器端接收连接? 是的,我在使用io.connect('http://localhost:8000/chat'); 时可以正常使用服务器,但不是第一个示例 试试chat = socket.socket.of('/chat'); 非常感谢 :) 就像一个魅力! 【参考方案1】:

正确的语法确实是

var socket = io.connect(); socket.socket.of('/namespace').on(...);

但是,如果您更新到 Socket.IO 0.7.7,您将拥有

var socket = io.connect() socket.of('/namespace')

我最近添加的可用方法 (https://github.com/LearnBoost/socket.io-client/pull/224)

【讨论】:

以上是关于Socket.IO 命名空间,调用未定义函数 .of()的主要内容,如果未能解决你的问题,请参考以下文章

使用特定路径和命名空间连接到 Socket.IO 服务器

动态命名空间 Socket.IO

Socket.IO:如何删除命名空间

Socket.io 命名空间限制以及如何扩展它

socket.io切换命名空间

使用 socket.io-client.java 库连接到 socket.io 命名空间