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...
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' })
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With