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

min*_*omi 6 connect node.js coffeescript socket.io

我试图让connect/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' })
Run Code Online (Sandbox Code Playgroud)

但是不断收到以下错误:

TypeError: Cannot call method 'listeners' of undefined
Run Code Online (Sandbox Code Playgroud)

似乎服务器没有及时初始化套接字开始监听..

与之比较:

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' })
Run Code Online (Sandbox Code Playgroud)

哪个工作......

mez*_*eze 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' })
Run Code Online (Sandbox Code Playgroud)