我创建了一个具有6个不同端点的nodejs服务器,所有这些端点在我的SQL数据库上执行基本的CRUD操作。现在,我需要在该服务器上创建聊天功能,该功能应托管在同一服务器的第9个端点(因为聊天还需要使用同一SQL Server执行几个CRUD操作)
以下是我的项目结构:
> bin
- www
>js
- common JS files
>node_modules
- all node dependencies
>routes
- endpoint_1
- endpoint_2
- endpoint_3
- endpoint_4
- endpoint_5
- endpoint_6
- chatEndPoint
- app.js
我已经在此处显示的聊天应用程序演示,并在此处提及源代码。
但是,此源代码仅在我聊天功能时才能起作用,但是现在我有不同的项目结构,我无法正确运行该应用程序。
我不确定如何管理依赖关系和实现
我在哪里放置以下代码:(相对于我的项目结构)
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
我在哪里粘贴处理连接的代码和聊天msgs:
io.on('connection',function(socket){
console.log('one user connected '+socket.id);
socket.on('message',function(data){
var sockets = io.sockets.sockets;
/*sockets.forEach(function(sock){
if(sock.id != socket.id)
{
sock.emit('message',data);
}
})*/
socket.broadcast.emit('message', data);
})
socket.on('disconnect',function(){
console.log('one user disconnected '+socket.id);
})
})
我的服务器已经在端口上运行(3881),所以我需要在此聊天功能的其他端口上收听。
如何配置我的app.js
文件以进行消耗并路由我的/chatEndPoint
?
这需要在您的app.js文件的顶部进行:
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on.connection函数在您在app.js中的所有路由之后进行,并且所有套接字功能都进入其中。阅读此内容以设置socket.io。另外,我建议您在root目录中放一个package.json文件。看到这个。不,您不需要更改端口。我还建议在您的根部中制作一个视图文件夹,在此处存储HTML文件。如果您的路线有分离的.js文件,则将这些文件存储在路由文件夹中。