使用socket.io在nodejs应用程序中添加聊天功能



我创建了一个具有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文件,则将这些文件存储在路由文件夹中。

最新更新