Задать вопрос
Ответы пользователя по тегу Comet
  • Comet (php + js + mysql). Как реализовать мгновенные сообщения?

    vanilich
    @vanilich Автор вопроса
    Всем спасибо за ответы. Прочитал про node.js и socket.io. Заинтересовало. Скачал, установил, поигрался - понравилось. Думаю для моей задачи в самый раз.
    Если говорить ближе к реализации, то сделаю вот так:
    • id - первичный ключ пользователя из бд
    • socket.id - id клиента, который выдает node.js

    1. При подключении клиента к серверу, буду проверять его сессию и забирать его id из таблицы. Id и socket.id буду запоминать в массиве вида:
    clients[id] = socket.id
    2. Создам обработчик, аля "onClientSendMessage", где буду проверять кому отправляется сообщение.
    3. Если человек, которому принадлежит отправленное сообщение, в данные момент подключен к серверу node.js, то заберу его socket.id из массива clients по ключу "id", и соответственно отправлю ему сообщение.
    io.sockets.socket(socket.id).emit('newMessage', message_data);

    4. Если человек не подключен к серверу, то просто сохраняю сообщение в базе.
    5. Если клиент разорвал соединение, то удалю его из массива clients.
    Вроде так... Всем спасибо.
    Ответ написан
    Комментировать