【发布时间】:2012-04-10 06:08:01
【问题描述】:
这是我在尝试测试基本 Socket.io 和 Express 设置时遇到的错误(根据 socket.io 网站上的示例):
/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:659
var socket = this.namespaces[i].socket(data.id, true);
^
TypeError: Object function extend(another) {
var properties = Object.keys(another);
var object = this;
properties.forEach(function (property) {
object[property] = another[property];
});
return object;
} has no method 'socket'
at Manager.handleClient (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:659:41)
at Manager.handleUpgrade (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:588:8)
at HTTPServer.<anonymous> (/Users/scottcorgan/Projects/sevenly/campaigns/node_modules/socket.io/lib/manager.js:119:10)
at HTTPServer.emit (events.js:88:20)
at Socket.<anonymous> (http.js:1390:14)
at TCP.onread (net.js:334:27)
感谢我能得到的任何帮助:)
【问题讨论】:
-
应该清楚你从 this.namespaces 得到的任何项目都不包含一个叫做 socket 的方法。如果您需要帮助追踪真正的问题,请粘贴更多代码。
-
通常socket不是一个方法,它是一个对象,你需要在给定的socket上调用
.emit()或.write()。 -
我正在使用来自 socket.io 网站的 Express 示例:link
-
@scottcorgan:在这些示例中我找不到对
this.namespaces[i].socket的任何引用? -
我也做不到。这就是我问的原因。当我只使用他们的示例代码时,我无法弄清楚为什么会发生这个错误......我很困惑。