6

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

どちらが機能しますか...

4

1 に答える 1

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' })
于 2011-05-11T06:45:10.257 に答える