node.js - Connect/node.js - 创建一个简单的服务器

标签 node.js connect coffeescript socket.io

我正在尝试让 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' })

哪个有效...

最佳答案

可能是因为 .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' })

关于node.js - Connect/node.js - 创建一个简单的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960090/

相关文章:

node.js - 减少mongodb中的值

javascript - 如何在 node.js 中使用原型(prototype)

php - 错误连接到Cloud 9中的DB

javascript - Canvas 弧线绘制奇怪的形状 - CoffeeScript

javascript - 在 Rails 中的确认对话框中单击“取消”时触发 'click' 事件

javascript - Nodejs获取mysql insertId并处理错误

javascript - 如何在服务器端呈现时禁用或阻止 ReactJS 查找文档?

ruby-on-rails - 使用 Ruby on Rails 登录 Facebook

python - 无法使用 Python 的 MySQLdb 连接到 localhost

node.js - CoffeeScript 主要?