Connect / node.js - создание простого сервера - PullRequest
6 голосов
/ 11 мая 2011

Я пытаюсь заставить 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' })

Но продолжаю получать следующую ошибку:

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 голосов
/ 11 мая 2011

Возможно, потому что .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' })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...