javascript - Express 4 和 socket.io

标签 javascript node.js socket.io

过去,监听服务器会在 app.js 文件中创建,因此当您想要运行服务器时,您可以使用此命令。

node app.js

我最近又回到了nodejs,但现在遇到了困难,因为过去我会像这样用套接字监听服务器 -

var io = require('socket.io').listen(server);

其中服务器对象是一个正在运行的 http 服务器

node app.js

简单地编译文件,为了启动服务器,我必须使用命令

npm start

它显然运行脚本./bin/www

浏览网络有几个使用express 4和socket.io的例子 但他们都在 app.js 中初始化服务器!!!

我的印象是,如果 Express 应用程序的默认设置是不在 app.js 中设置服务器,那么这样做将是不好的做法。任何人都可以帮助指导我使用 socket.io 和 Express 4 的最佳方法吗?我应该在 app.js 中创建一个 httpServer 吗?

最佳答案

看看Where to Eat ,特别是 app.js。

http 服务器在 app.js 中定义:

var express = require('express'),
    socketio = require('./data/socket');

接下来,将服务器传递给 init 函数(这就是 app.js 中的 socketio 的用途),它告诉 socket.io 监听传递的服务器对象:

//start up socket.io
socketio(server);

所有套接字事件处理程序都保持良好状态并捆绑在/data/socket 中。

var socketio = require('socket.io'),

module.exports = initSockets;

function initSockets(server){
  var io = socketio.listen(server);
//…

关于javascript - Express 4 和 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922315/

相关文章:

node.js - 将 cypress.io 测试用例移交给非技术用户

javascript - 使用 Jest 测试 node-cron 作业功能

javascript - 在for循环中从函数返回分配的变量?

javascript - JS : JSON Data query like SQL

c# - 错误 : 'keyCode' is null or not an object

javascript - 使用 Angular 和 MomentJS 显示下一个可用日期(24 小时间隔)

javascript - NodeJS - 带有数组 promise 的 Promise.all() 未按预期返回

node.js - 基准 socket.io

node.js - Juggernaut/Socket.io 和验证单用户 channel 订阅

javascript - 使用 Express 4 模块化 Socket.io