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/

相关文章:

javascript - 无法让 MongoDB 更新查询在 Node.JS 中工作

node.js - Loopback JS模型与MongoDB的连接

javascript - 循环运行对象属性函数

javascript - 从机器人中隐藏 URL 的方法(类似于 tripadvisor.com)

node.js - 使用 Google Sheets API v4 编辑文档的监听器

javascript - (react) 动态 URL,无法呈现我想要的数据

postgresql - 我可以配置 connect-pg-simple 以启用 SSL 吗?

session - node.js中connect-redis session 过期的回调函数

connect - redshift/Postgresql 8.0 撤销连接到用户的数据库

node.js - 以二进制形式从 Redis 中获取位图