Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2025, 10:35
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 792

Socket.io Сообщение пользователю
Привет. Не получаю сообщение когда отправляю конкретному юзеру

var contactIn = [];
var client=[];

io.on('connection', function (socket) {
socket.on('add_user', function(userId){
client[userId] = socket.id;
socket.join(userId);
        if (!contactIn.includes(socket.user_id)) {
            contactIn.push(socket.user_id);
        }
}
socket.on('new_message', data => {
if (contactIn.includes(data.contact_id)) {
const targetId = client[data.contact_id];
 socket.in(targetId).emit('my_mess', data);
/* Пробовал и так 
 socket.to(targetId).emit('my_mess', data);
io.to(targetId).emit('my_mess', data);
*/

}
}
}


Причём отправка всем работает
socket.emit('my_mess', data);


Клиент на java
Ответить с цитированием
  #2 (permalink)  
Старый 09.10.2025, 11:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,291

Сообщение от ureech
Не получаю сообщение когда отправляю конкретному юзеру
Есть подозрение, что ты не верно вычисляешь "socket.id" пользователя - в итоге шлешь сообщения в "никуда"...

Посмотри что у тебя в targetId, перед отправкой сообщения.
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2025, 12:08
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 792

Да нет, в том то и дело, всё верно. Проверял. Выводил лог
socket.on('add_user', function(userId){
 console.log('client : ', client[userId]+"**"+userId);
}

 socket.on('new_message', data => {
...
 console.log('targetSocketId: ', targetSocketId+"***"+data.contact_id);
}

Последний раз редактировалось ureech, 09.10.2025 в 12:47.
Ответить с цитированием
  #4 (permalink)  
Старый 09.10.2025, 12:47
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 792

Нашёл ошибку. У меня происходит переподключение, когда открываю страницу с контактом. И соответственно меняется socket.id
Спасибо за участие. Пойду решать).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что-то не так с видео-вызовом (WebRTC, socket.io) Kiten Общие вопросы Javascript 3 09.05.2023 06:54
Socket ws и индивидуальное сообщение HotReboot Node.JS 1 27.05.2021 12:55
Удалить сообщение fear111 Общие вопросы Javascript 9 25.03.2016 20:40
Нужно всплывающее сообщение для сайта bursnabby Работа 4 30.05.2015 20:21
Система всплывающих сообщений ruslan_mart Ваши сайты и скрипты 32 27.05.2015 21:28