我正在向所有客户端发送数据,但它仅附加在发件人的邮件正文上。在这种情况下,实时数据仅在发送者上起作用,但是我需要在每个连接的用户上起作用。
阅读说明文件后,广播可能是解决方案,但对发送方不显示(这意味着可以),但对于其他连接的接收方也未显示。
Custom.js
var socket = io.connect("http://localhost:3000/");
$.ajax({
url: 'sent',
type: 'POST',
data: {
msg: 'Some message'
},
dataType: "json",
success: function (data) {
if (data.message) {
socket.emit('send', {
msg: data.msgResult
});
socket.on('msgResult', result => {
$(".msgDiv").append(result);
});
}
}
});
App.js
const app = express();
const http = require("http").Server(app);
const io = require("socket.io")(http);
io.on('connection', (socket) => {
console.log('Socket.io connected...');
socket.on('send', (data) => {
socket.emit('msgResult', data.msg);
});
socket.on('disconnect', () => {
console.log("A socket Discounted ..");
});
});
我也想将数据附加到包括发件人在内的所有已连接用户上。
答案 0 :(得分:0)
如果要将消息发送到所有已连接的套接字,则可以使用
io.sockets.emit('msgResult', 'data');
,如果要将消息发送到除发件人以外的所有已连接套接字,请使用
socket.broadcast.emit('msgResult', 'data');
答案 1 :(得分:0)
您用于套接字服务器的index.js应该具有 // webServerPort = localhost:3000
const server = http.createServer(app);
let constAppServer = server.listen(webServerPort);
let io = socketServer(constAppServer);
app.set('socket',io);
io.on('connection', function (socket) {
console.log('connection opened');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('udagent',function(msg){
console.log('message: ' + msg);
});
});
当您要将事件发送到前端时,这就是您的event.js
const testFunction =(req,res)=> {
let io = req.app.get('socket');
io.emit('dashboard_event', { "totalMin": data });
}
答案 2 :(得分:0)
我有一个api通过创建并传递此api来向我下面的所有代理广播我的管理员通知
const broadCastUpdates =(req,res)=> {
const {message} = req.body
let io = req.app.get('socket');
io.broadcast.emit('broadCastToAgents', { 'data':message });
}
答案 3 :(得分:0)
最后我找到了答案。这是一个简单的错误,需要很多时间。
custom.js
var socket = io.connect("http://localhost:3000/");
$.ajax({
url: 'sent',
type: 'POST',
data: {
msg: 'Some message'
},
dataType: "json",
success: function (data) {
if (data.message) {
socket.emit('send', {
msg: data.msgResult
});
}
}
});
socket.on('msgResult', result => {
$(".msgDiv").append(result);
});
App.js
const app = express();
const http = require("http").Server(app);
const io = require("socket.io")(http);
io.on('connection', (socket) => {
console.log('Socket.io connected...');
socket.on('send', (data) => {
socket.emit('msgResult', data.msg);
});
socket.on('disconnect', () => {
console.log("A socket Discounted ..");
});
});
我只是从ajax提交中插入了 msgResult 。就是这样。