Используйте socket.io в маршрутах expressjs вместо bin / www - PullRequest
0 голосов
/ 22 октября 2018

Я использую socket.io в expressJS

У меня есть сокетное соединение в bin / www

Я хотел бы сделать, когда я отправляю данные в sendmessage.js, я бы хотелотправлять данные на сторону клиента с помощью socket.emit () в sendmessage.js

bin / www

var io = require('socket.io')(server, {
  pingInterval: 10000,
  pingTimeout: 5000,
}).listen(server)

io.on('connection', function(socket){

socket.on('messageData', function(msg){

  io.sockets.emit('messageData', msg);
});
 socket.on('disconnect', function(msg){
 console.log("User DisConnected"); 
});
});

router / sendmessage.js

var express = require('express');
var router = express.Router();
var checkAuth = require('../middleware/check-auth');
var connection  = require('./db');

/* GET users listing. */
router.post('/', checkAuth , function(req, res, next) {
    res.send();  

});

module.exports = router;

1 Ответ

0 голосов
/ 22 октября 2018

Я думаю, у вас есть проблема в концепции сокета.Когда один сокет соединяется, создайте соединение между клиентом и сервером socket.io и продолжайте соединение.Когда вы отправляете запрос на http-сервер, между вашим клиентом и http-сервером создается другое соединение.Соединения различны, и вы не можете передавать данные, не получив доступ к сокету, к которому подключен socket.io.

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