我创建了一个NodeJS服务器,它有6个不同的端点,所有这些端点都在我的SQL数据库上执行基本的CRUD操作。现在我需要在此服务器上创建一个聊天功能,该功能应该托管在同一服务器的第9个端点上(因为聊天还需要使用相同的SQL服务器执行一些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
我已经通过展示HERE进行了聊天应用程序演示,源代码提到了HERE。
但this source code只有在我有聊天功能时才能工作,但现在我有不同的项目结构,而且我无法正确运行应用程序。
我不知道如何管理依赖项和实现
我在哪里放置以下代码:(关于我的项目结构)
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
我在哪里粘贴处理连接和聊天消息的代码:
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
?
答案 0 :(得分:0)
这需要放在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中的所有路由之后执行,并且所有套接字函数都在其中。阅读This以设置socket.io。另外我建议你在根目录下有一个package.json文件。见this。不,你不应该改变端口。我还建议在你的root中创建一个views文件夹,在这里存储你的html文件。如果您的路由有单独的.js文件,则将它们存储在routes文件夹中。