Node.js 使用 socket.io 进行重构

Posted

技术标签:

【中文标题】Node.js 使用 socket.io 进行重构【英文标题】:Node.js restify with socket.io 【发布时间】:2012-10-17 13:51:40 【问题描述】:

是否可以像 express 和 socket.io 一样在同一个端口上运行 socket.io 和 restify?

我就是这样做的,但是没有用

# server.coffee
restify = require 'restify'
socket  = require 'socket.io'

server = restify.createServer()

io = socket.listen server
server.listen 1337

当我尝试连接到 socket.io 时:

GET http://localhost:1337/socket.io/socket.io.js 404 (Not Found) 

【问题讨论】:

【参考方案1】:

正如@jtomasrl 和@zacheryph 所建议的here,这对我有用:

var server = restify.createServer();
var io = socketio.listen(server.server); //Note server.server instead of just server

【讨论】:

上 1. 真实有用的答案。 server.server!啊! 简单实用【参考方案2】:

由于这是“restify socket.io”的第一个谷歌点击,我发布了一个新答案。现在可以正常工作,如http://restify.com/docs/home/#socketio

所述

【讨论】:

【参考方案3】:

显然,使用带有 restify 的 socket.io 是不可能的:https://github.com/mcavage/node-restify/issues/230

【讨论】:

@Sitapati Das 他们添加了这个功能,看看 Socket.IO 部分:mcavage.github.com/node-restify

以上是关于Node.js 使用 socket.io 进行重构的主要内容,如果未能解决你的问题,请参考以下文章

使用 socket.io 在 Node.js 中使用 MySql 数据库进行 HTML5 页面日志记录

使用 Redis 在 PHP 和 socket.io/node.js 之间进行通信

Node.js、多线程和 Socket.io

找不到Node.js /socket.io/socket.io.js express 4.0

使用 node.JS 和 Socket.IO 的路径和其他问题

Node.JS、Socket.IO 和集群中的 WebSocket 握手不起作用