我在expressJS中使用socket.io
我在bin / www中有套接字连接
我想做的是,当我将数据发送到sendmessage.js时,我想使用sendmessage.js中的socket.emit()将数据发送到客户端
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");
});
});
routers / 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;
答案 0 :(得分:0)
我认为您在套接字的概念上有问题。当一个套接字连接时,在客户端和socket.io服务器之间创建连接并保持连接。当您将请求发布到http服务器时,客户端和http服务器之间将创建另一个连接。连接是不同的,如果不访问socket.io连接的套接字,就无法发射数据。