NodeJS Socket.io客户端无法正常工作

时间:2013-12-26 09:21:35

标签: node.js coffeescript socket.io

我一直试图让socket.io-client在端口9000上使用socket.io本地主机服务器。客户端和服务器都基于NodeJS。

这似乎连接到服务器:

io = require('socket.io-client')

socket = io.connect('http://localhost:9000', {resource : 'node_modules/socket.io'})

socket.on 'connect', ->
    socket.emit 'message', {hello: 'world'}
    return

但是它会出现以下错误:

      self.transport.onClose();
                 ^
TypeError: Cannot call method 'onClose' of null

服务器似乎正确注册请求:

GET /node_modules/socket.io/1/?t=1388048751499 200 11ms - 2.81kb

是否有针对Socket IO的基于NodeJS的客户端的工作示例?找到的链接:

Uncaught TypeError: Cannot call method 'onClose' of null

1 个答案:

答案 0 :(得分:1)

什么。大声笑。 NPM上的模块已损坏。 -.-

Guys直接从Github拉出来 - 这是有效的。

npm install git+https://github.com/LearnBoost/socket.io-client.git

在v1.0中,这对我有用(连同下面的pong示例)

服务器

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
io.on('connection', function(){ // … });
server.listen(3000);

Express在dev端口上运行(对我来说,9000),Socket.io正在运行@port 3000

参考:http://liamkaufman.com/blog/2012/01/28/testing-socketio-with-mocha-should-and-socketio-client/#trouble-shooting