Javascript Express 4和socket.io

Javascript Express 4和socket.io,javascript,node.js,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 浏览web有

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

node app.js
我最近又回到了nodejs,现在遇到了困难,因为在过去,当我用我的套接字收听服务器时,我会这样做-

var io = require('socket.io').listen(server);
其中,服务器对象是http服务器,现在正在运行

node app.js
只需编译文件,为了启动服务器,我必须使用以下命令

npm start
显然是在运行脚本。/bin/www

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

我的印象是,如果express应用程序的默认设置是不在app.js中安装服务器,那么这样做是不好的做法。有谁能帮助我找到在express 4中使用socket.io的最佳方法吗?我应该在app.js中创建一个httpServer吗?

看看,尤其是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);
//…

在app.js中创建一个http服务器并没有错,它还运行package.json中定义的启动脚本。这可能会回答这个问题,在这里包括答案的基本部分,并提供链接以供参考。