我正在使用nodejs,reactjs mongo和socket.io构建聊天应用程序。我的聊天应用程序包含一对一和群组聊天。我已经为群组聊天构建了一个模式,我正在插入群组名称随着它的成员和他们在table.io的聊天。我是一个初学者对socket.io,我不知道在db post操作后需要触发的套接字逻辑放在哪里。可以为我提出一些示例吗?< / p>
答案 0 :(得分:0)
相应地更新您的代码:
=&GT; server.js 文件
// Declare socket.io
const io = require('socket.io')(server);
// Add middleware to set socket.io in
app.use((req, res, next)=>{ res.locals['socketio'] = io; next(); });
=&GT;在控制器文件
中 // Get the value of socket.io
module.exports = your_function_name = (req, res) => {
const io = res.locals['socketio']
// Use io when you need.
});
希望这能解决您的问题。
答案 1 :(得分:0)
您可以通过以下方式将与套接字相关的代码分开:
<强> ==&GT; app.js 强>
var express = require('express');
var socket = require('./socketServer');
var app = express();
var server = app.listen((config.node_port || 3000), function () {
console.log('Listening on port ' + (config.node_port || 3000) + '...');
});
socket.socketStartUp(server);
module.exports = app;
<强> ==&GT; socketServer.js 强>
var io = require('socket.io')();
var socketFunction = {}
socketFunction.socketStartUp = function (server) {
io.attach(server);
io.on('connection', function (socket) {
console.log("New user is connected with socket:", socket.id);
})
}
module.exports = socketFunction;
您还可以在下面的链接中查看带有套接字功能的节点API启动代码:
希望这个答案对你有所帮助