我陷入了一个难题。
我在bin文件中创建了一个socket.io连接,这个连接可以正常工作,但是有没有人能告诉我如何将这个连接导出到不同的控制器。这是我的bin文件代码。
var app = require('../app');
var debug = require('debug')('userservice:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3015');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
var io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('Connection made #######################################################.', socket.id);
socket.on('disconnect', () => {
console.log('Connection disconnected @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.', socket.id);
});
});
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
3条答案
按热度按时间3gtaxfhh1#
有很多技术可以用来重用套接字示例,一个简单易行的技术是创建一个单数类,以便能够:
1.启动套接字示例
1.将示例导出到其他模块
套接字.js:
服务器.js:
现在您可以在其他模块中使用它。
mrphzbgm2#
您只需创建一个socket.io控制器模块,该模块导出一个函数,您可以为每个新连接调用该函数。
因此,在当前服务器文件中,添加以下内容:
并且,您可以修改此部分,以便为每个新套接字调用它:
然后,你的套接字控制器可以是这样的:
r7xajy2e3#
我们可以通过创建一个全局对象来导出每个文件中的套接字模块。
而在文件或组件网中,我们要使用。