Connect / node.js - creating a simple server

主宰稳场 提交于 2019-12-10 13:31:01

问题


I'm trying to get connect / node.js to work together nicely and simply. I have the following (in 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' })

But keep getting the following error:

TypeError: Cannot call method 'listeners' of undefined

It seems the server is not being initialized in time for the socket to start listening..

Compare with:

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' })

Which does work...


回答1:


Probably because .listen() returns something else. It should work if you rewrite your code like this:

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' })


来源:https://stackoverflow.com/questions/5960090/connect-node-js-creating-a-simple-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!