Я работаю над задачей по созданию модуля чата, который использует socket.io, node.js, java в Android Studio IDE.
Я прошел основы и смог создать базовую комнату чата, чтобыгрупповой чат с несколькими пользователями.Но я хочу сделать это пользователем для пользователя.Для этого я перечислил все подключенные клиенты, используя их идентификаторы сокетов в файле node.js.Но этого недостаточно, чтобы передать этот список клиентской стороне, мне нужно имя пользователя для каждого подключенного идентификатора сокета, чтобы я мог объединить socket.id с соответствующим именем пользователя и поместить его в список.
Я застрял в середине, где я не могу понять, как сделать строку, исходящую из socket.on(event, function(string))
, для глобального доступа.Я попытался выдвинуть эту строку в массив и получить доступ к ней после socket.on
, но ничего не происходит.
Вот мой код
index.js
const express = require('express'),
http = require('http'),
app = express(),
server = http.createServer(app),
io = require('socket.io').listen(server);
app.get('/', (req, res) => {
res.send('Chat Server is running on port 4040')
});
io.on('connection', (socket) => {
console.log('user connected');
console.log("The socket id is " + socket.id);
socket.on('join', function(userNickname) {
console.log("User" + userNickname +" : has joined the chat ");
io.sockets.emit('userjoinedthechat',userNickname +" : has joined the chat ");
});
var req = io.sockets.connected;
var count = Object.keys(req).length;
console.log(socket);
console.log("Number of connected clients: " + count);
var list = new Array();
for(var i = 0; i < count; i++) {
user = Object.keys(req)[i];
list.push("User Id : " + user, "User Name : ");
}
console.log("Connected Clients Socket Id's: " + list);
io.sockets.emit('users', list);
});
Я пытался,
//Declare a global variable or array
var user;
//(or)
var users = new Array();
socket.on('join', function(userNickname) {
console.log("User" + userNickname +" : has joined the chat ");
user = userNickname;
//(or)
users.put(userNickname);
io.sockets.emit('userjoinedthechat', userNickname +" : has joined the chat ");
});
И получить к нему доступ снаружи,
console.log(user); //global variable
//or
console.log(users); //Array list
Любая помощь была бы великолепна.Благодаря.