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