Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何组织web和socket.io服务器?_Javascript_Node.js - Fatal编程技术网

Javascript 如何组织web和socket.io服务器?

Javascript 如何组织web和socket.io服务器?,javascript,node.js,Javascript,Node.js,我有一个关于node.js的问题 是否可以有多个server.js文件 比如:你有一个“main”server.js将你路由到另一个目录,还有另一个server.js处理socket.io之类的东西 更具体地说: 我想用WebSocket构建一个游戏,并希望有一个server.js将您路由到游戏页面,然后在“游戏页面”上,我希望它将其连接到“另一个”server.js并处理诸如websockets、登录之类的事情。还是必须将所有内容都放在一个server.js文件中 我听说了modules.ex

我有一个关于node.js的问题

是否可以有多个server.js文件

比如:你有一个“main”server.js将你路由到另一个目录,还有另一个server.js处理socket.io之类的东西

更具体地说:

我想用WebSocket构建一个游戏,并希望有一个server.js将您路由到游戏页面,然后在“游戏页面”上,我希望它将其连接到“另一个”server.js并处理诸如websockets、登录之类的事情。还是必须将所有内容都放在一个server.js文件中


我听说了modules.export功能,但我认为这不是我想要的。

回答您的问题。您需要多个进程侦听不同的内容。是的,你能做到。您可能希望一个进程在端口80上侦听以处理web流量,另一个进程在另一个端口上侦听

您可以通过让两个不同的“项目”共享一个数据库来实现这一点,也可以在一个项目中的两个不同端口上启动两个不同的服务器


如果您知道这两个“服务器”的职责将非常不同(例如一个服务器处理所有游戏数据等,另一个服务器处理高分的标准web流量等),我可能会在一开始就将其拆分。

两者都有可能。如果我理解正确,您需要一个web服务器和一个socket.io服务器

您可以在同一文件中执行这两项操作:

'use strict';
const express = require('express'),
    socket= require('socket.io'),
    app = express(),
    io = socket();

//...

app.listen(80);
io.listen(12345);
在不同的文件中:

web.js:

'use strict';
const express = require('express'),
    app = express();

//...

app.listen(80);
io.js:

'use strict';
const socket= require('socket.io'),
    io = socket();

//...

io.listen(12345);

所以说得很清楚,您想要两个不同的服务器进程进行交互?或者一个文件启动另一个文件?我想要两个服务器进程相互交互您可以将其命名为init.js、app.js等其他名称。您可以随意命名您的文件,不一定是server.js,这只是一个每个人都遵循的名称。我建议您根据文件的使用情况给出文件名,如socket.js是的,我知道我可以随意命名,但我的问题是,我是否可以让一个节点文件“连接”到另一个节点文件,从而处理其他一些事情,如sockets。例如:我有一个带有节点的博客,现在我想在博客中添加一个游戏。我创建了一个到游戏的路由,然后是否可以将游戏内容(套接字)放在另一个节点文件中,这样它们就不会彼此独立。是的,您可以创建另一个文件来处理套接字和其他内容。您可以在不同的端口上运行它们,也可以通过给它们不同的路由在同一端口上运行它们。谢谢,这就是我想听的。还有一个问题,如果我想使两个文件都必须在同一个文件夹权利?不是必要的,他们可以完全不同的项目。