【问题标题】:Using socket.io to add chat functionality in NodeJS Application使用 socket.io 在 NodeJS 应用程序中添加聊天功能
【发布时间】:2016-10-20 08:36:42
【问题描述】:

我创建了一个 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 

我已经完成了聊天应用程序演示,如 show 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

【问题讨论】:

    标签: javascript android node.js sockets socket.io


    【解决方案1】:

    这需要放在 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。不,您不需要更改端口。我还建议在您的根目录中创建一个视图文件夹,将您的 html 文件存储在这里。如果您的路线有单独的 .js 文件,请将它们存储在路线文件夹中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多