Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点JS和socket.io-发送消息基础_Javascript_Sockets_Node.js - Fatal编程技术网

Javascript 节点JS和socket.io-发送消息基础

Javascript 节点JS和socket.io-发送消息基础,javascript,sockets,node.js,Javascript,Sockets,Node.js,我正在处理节点JS和socket.io,我有点迷路了。在下面的代码中,我将在创建时保存对套接字的引用,然后传输从控制台捕获的消息。一切都很好,但我觉得这不是正确的方法 你的想法 var app = require('http').createServer(handler) , io = require('socket.io').listen(app) , fs = require('fs'); app.listen(80); function handler(req, res

我正在处理节点JS和socket.io,我有点迷路了。在下面的代码中,我将在创建时保存对套接字的引用,然后传输从控制台捕获的消息。一切都很好,但我觉得这不是正确的方法

你的想法

var app = require('http').createServer(handler)
    , io = require('socket.io').listen(app)
    , fs = require('fs');

app.listen(80);

function handler(req, res) {
    fs.readFile('C:/node/index.html',
        function (err, data) {
            if (err) {
                res.writeHead(500);
                return res.end('Error loading index.html');
            }

            res.writeHead(200);
            res.end(data);
        });
}

var Sender = {
    sockets:[],
    sendMsg:function (msg) {
        for (var i = 0; i < Sender.sockets.length; i++) {
            Sender.sockets[i].emit('news', msg);
        }
    }
};


process.openStdin().addListener("data", function (text) {
    Sender.sendMsg(text.toString());
});

io.sockets.on('connection', function (socket) {
    //Saving reference
    Sender.sockets.push(socket);
});

事实上,您可以删除发件人及其所有引用

process.openStdin().addListener("data", function (text) {
    io.sockets.emit('news', text.toString())
});
这将向所有连接的客户端发送消息

这里有几个例子,我建议你看看