在 ExpressJS 中将 socket.io 实现为子模块的最佳方法是啥?
Posted
技术标签:
【中文标题】在 ExpressJS 中将 socket.io 实现为子模块的最佳方法是啥?【英文标题】:What's the best way to implement socket.io as a submodule within ExpressJS?在 ExpressJS 中将 socket.io 实现为子模块的最佳方法是什么? 【发布时间】:2013-02-28 12:16:32 【问题描述】:我正在尝试使用 tjholowaychuk 建议的子模块架构构建基于 ExpressJs 的应用程序。
我还想有一些实时套接字交互,所以我正在尝试集成 socket.io。我正在努力寻找作为子应用程序执行此操作的最佳方法,并允许 Express 和 socket.io 一起收听。
【问题讨论】:
你读过socket.io/#how-to-use('使用 Express (3) web 框架')吗? 我确实做过 RTFM,但我在将它用作子模块时遇到了问题。 您能详细说明一下吗?不确定“将其用作子模块”是什么意思。 我希望我的 socket.io 逻辑远离主应用程序。我假设我可以按照vimeo.com/56166857 的建议使用expressjs.com/api.html#app.use 来做到这一点 【参考方案1】:您可以将所有socket.io
相关代码放在一个单独的文件中:
// socketio.js
var sio = require('socket.io');
module.exports = function(server)
var io = sio.listen(server);
io.sockets.on('connection', ...);
return io;
;
// app.js
var app = require('express')(),
server = require('http').createServer(app),
io = require('./socketio')(server);
【讨论】:
以上是关于在 ExpressJS 中将 socket.io 实现为子模块的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一个端口上使用 ExpressJS 和 Socket.io?
expressJS 和 socket.io 监听不同的端口和 socket.io 客户端连接