我是这个socket.io世界的新手。我已成功将socket.io集成到我的客户端和服务器。我也可以使用emit方法从客户端向所有连接的设备发送消息。
但我的问题是我想从我的节点JS控制器方法发送一些消息。 成功将数据插入数据库后,我想将其广播给所有连接的用户。但不知何故,这是在抛出错误:
以下是我的文件:
var server = https.createServer(app.get("httpsOptions"), app);
var io = require('socket.io');
io = io.listen(server);
require('./sockets/base')(io);
module.exports = function (io) { 'use strict'; io.on('connection', function (socket) {
socket.broadcast.emit('user connected');
socket.on('message', function (from, msg) {
console.log('recieved message from', from, 'msg', JSON.stringify(msg));
console.log('broadcasting message');
console.log('payload is', msg);
io.sockets.emit('broadcast', {
payload: msg,
source: from
});
console.log('broadcast complete');
}); }); };
exports.insertIntoDatabase = function(req, res){
// code to insert data into the database
var output = req.query;
// Now I am completely clue less, how can I broadcast "output" to all the connected users.
}
我已经使用https://github.com/krimple/angular-socketio-chat来设置我的基础项目。感谢您在这方面的任何帮助。
答案 0 :(得分:0)
你发射事件的方式是错误的。您正在关注的repo可能是针对socket.io版本< 1.0
使用此
io.emit('broadcast', {
payload: msg,
source: from
});
而不是
io.sockets.emit('broadcast', {
payload: msg,
source: from
});