Ничего не происходит при отправке из контроллера Express Route - PullRequest
0 голосов
/ 05 марта 2019

Мне действительно нужна помощь, чтобы справиться с этой проблемой, с которой я сталкиваюсь в socket.io.Поверьте, я просмотрел почти все сообщения на эту тему ...

App.js

const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);

io.on('connection', function (socket) {
  console.log('a user connected');
  socket.on('disconnect', function () {
    console.log('User Disconnected');
  });
  socket.on('example_message', (msg) => {
    console.log('message: ' + msg);
  });
});

app.set('socketio', io);

const port = process.env.PORT || 7777;
app.listen(port);
console.log(`Server listening at ${port}`);

module.exports = app;

Routes.js

const express = require('express');
const router = require('express-promise-router')();


router.route('/test-route')
    .put(TestController.testEmit);

module.exports = router;

TestController.js

module.exports = {

  testEmit: async (req, res, next) => {
    const io = req.app.get("socketio");
    console.log(io); // this ACTUALLY logs the entire socketio object!
    io.emit('example_message', 'abc'); // NOTHING HAPPENS
  }

}

Каждый раз, когда я перезагружаю свой клиент, я вижу "пользователь подключен" в окне терминала.Однако, когда я пытаюсь выполнить излучение из контроллера testEmit, ничего не происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...