У меня есть app.js, который используется для запуска двух событий при получении некоторых POST-данных:
- Вставить данные POST в базу данных
- Отправить сообщение клиенту с помощью WebSocket
Вот app.js (только важные строки)
var express = require('express');
var bodyParser = require('body-parser');
var server = require('./server');
var app = express();
var port = process.env.PORT || 3000;
app.post('/server', server);
app.listen(port, function(){
console.log('Slack bot listening');
});
И вот server.js (только важные строки)
var db = require('./DB');
var WebSocketServer = require('ws').Server;
var insertData = function(req, res){
var wss = new WebSocketServer({server: server});
console.log('WebSocketServer created');
wss.on('connection', function(wss){
wss.send(JSON.stringify('Socket open'));
});
wss.on('close', function(){
console.log('WebServerSocket has been closed');
});
};
module.exports = insertData;
То, что я хотел бы достичь, - установить WebSocketServer таким образом, чтобы он прослушивал тот же порт приложения. Я думал о передаче сервера var с app.js на server.js, но
- Я думаю, что это не элегантный способ сделать это.
- Я не знаю, как это сделать.
Что вы, ребята, думаете?