Después de que varios clientes establecen conexiones con el servidor, el servidor Socket.io () tiene un atributo de sockets, y el valor del atributo son todos los objetos de socket que establecen conexiones con el cliente. Puede usar el método de envío o el método emit del objeto para transmitir mensajes a todos los clientes.
io.sockets.send ("Usuario editado);
io.socket.emit ("Iniciar sesión", nombres);
Caso
Código de server.js:
La copia del código es la siguiente:
var express = request ("express");
var http = require ("http");
var sio = require ("Socket.io");
var app = express ();
var ser servidor = http.createServer (aplicación);
app.get ("/", function (req, res) {
res.sendFile (__ dirname+"/index.html");
});
server.listen (1337, "127.0.0.1", function () {
console.log ("Comience a escuchar 1337");
});
var io = sio.listen (servidor);
Var nombres = [];
io.sockets.on ("conexión", función (socket) {
socket.emit ("Iniciar sesión", nombres);
Socket.on ("Login", function (nombre) {
nombres.push (nombre);
io.sockets.emit ("Iniciar sesión", nombres);
});
});
La copia del código es la siguiente:
<! Doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> </title>
<script src = "/Socket.io/socket.io.js"> </script>
<script>
var enchock = io.connect ();
Socket.on ("Login", function (nombres) {
var str = "";
Names.ForEach (function (nombre) {
str+= "user"+name+"Iniciar sesión. <br/>";
});
document.getElementById ("resultado"). innerhtml = str;
});
función add () {
Socket.emit ("Login", Document.getElementById ("Npohname"). Value);
}
</script>
</ablo>
<Body>
Nickname <input type = "text" id = "Nickname" />
<div id = "resultado"> </div>
<input type = "button" onClick = "add ()" value = "login" />
</body>
</html>
Resultados de ejecución:
Inicie sesión en Google Chrome y puede ver los mismos resultados en Firefox.
Este es un fenómeno maravilloso y un efecto que me sorprendió mucho.
Un nodo tan maravilloso.