На данный момент у меня есть сервер веб-сервера, который генерирует uuid для каждого подключенного к нему подключения и передает его на клиент, а на стороне клиента я обновляю простой список со всеми соединениями , Я хотел бы видеть список оригинального connaction в обновлении, позвольте мне пояснить, что я имею в виду:socket.io обновить список подключенных клиентов
- открыть вкладку - первый клиент подключается и я вижу свою UUID на списке
- открыть новую вкладку , подключитесь к websocket, я вижу идентификатор ID и новый ID
- Теперь, когда я вернусь на вкладку 1, я не вижу оба соединения, только первое, что было там. Как обновить этот список таким образом, чтобы при подключении к websocket этот список uuid обновлен для всех подключенных клиентов .
Мой код на данный момент выглядит следующим образом:
сервер:
var http = require("http"), io = require("socket.io"), uuid = require ("node-uuid");
var connectedPlayers = new Array();
var server = http.createServer(function(req, res) {
// Send HTML headers and message
res.writeHead(200,{ "Content-Type": "text/html" });
res.end("<h1>Server is ready & listening</h1>");
});
server.listen(1222, "1.1.1.1");
var socket = io.listen(server);
socket.set('log level', 0);
socket.on("connection", function(client) {
client.on("connection", function(){
console.log("Client connected.");
});
client.on("disconnect",function(client){
//connected--;
console.log("Client disconnected.");
});
client.userid = uuid();
console.log(client.userid);
connectedPlayers.push(client.userid);
client.emit("onconnected", {playersId: connectedPlayers});
});
клиент:
var socket = io.connect("1.1.1.1:1222");
console.log(socket);
socket.on("connect",function() {
console.log("Client has connected to the server");
});
socket.on("disconnect",function() {
console.log("The client has disconnected from the server");
});
socket.on("error", function(message) {
console.log("It is not possible to connect to the server: " + message);
});
socket.on("onconnected", function(data) {
for (var i = 0; i < data.playersId.length; i++)
$("#players").append("<li>" + data.playersId[i] + "</li>");
});
(и, конечно же: <ul id="players"></ul>
)
change client.emit to socket.emit или, может быть, broadcast() – dandavis
Я изменил на socket.emit(), но мой клиент, похоже, не забирает anyt hing, функция «onconnected» никогда не вызывается на стороне клиента. – Tamas