连接 / node.js - 创建一个简单的服务器

6

我正在尝试让连接/ node.js 很好地并简单地一起工作。我有以下代码(使用 Coffeescript):

connect = require('connect')
io = require('socket.io')

server = connect.createServer(
    connect.favicon()
  , connect.logger()
  , connect.static(__dirname + '/public')
).listen(8000)

socket = io.listen(server)
socket.on 'connection', (socket) ->
  socket.send({ hello: 'world' })

但我一直收到以下错误:

TypeError: Cannot call method 'listeners' of undefined

看起来服务器没有及时初始化,以便套接字开始监听。

与以下进行比较:

io = require ("socket.io")
http = require('http')

server = http.createServer()

server.listen(8000)

socket = io.listen(server)

socket.on 'connection', (socket) ->
  socket.send({ hello: 'world' })

哪个是有效的?

1个回答

5

可能是因为.listen()返回了其他内容。如果您像这样重写代码,它应该可以正常工作:

connect = require('connect')
io = require('socket.io')

server = connect.createServer(
    connect.favicon()
  , connect.logger()
  , connect.static(__dirname + '/public')
)
server.listen(8000)

socket = io.listen(server)
socket.on 'connection', (socket) ->
  socket.send({ hello: 'world' })

谢谢!正在工作。 所以,我将服务器设置为listen方法的结果,而不是定义它并调用listen。啊。 - minikomi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接