Справка по концепции Java Multi-Client Instant Messenger - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь реализовать программу чата Java. В этой программе несколько клиентов будут общаться друг с другом через сервер. Сервер будет передавать сообщения от одного клиента другому. Он также будет предоставлять обновления в список друзей. Концептуально, что будет лучшим путем для реализации этого чата. Часть, с которой я сталкиваюсь, - это передача сервером сообщений от одного клиента другому. Каждый клиент должен также иметь возможность выбирать, с кем он хочет общаться. Снова единственная цель сервера - принимать сообщения от одного клиента и отправлять его другому клиенту. Если один клиент подключен к серверу, ничего не происходит, пока другой клиент не подключится. Затем оба клиента начинают общаться друг с другом.

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Для базовой системы чата вам понадобятся следующие функции:

  1. Клиент заходит на ваш сервер. Это позволяет идентифицировать клиента и вести списки друзей для каждого клиента.
  2. Клиент только отправляет сообщения на сервер.
  3. Клиент только получает сообщения от сервера.
  4. Каждое сообщение должно указывать следующее:
    1. Получатель сообщения.
    2. Источник сообщения.
    3. Текст сообщения.
    4. Может быть; время и дата отправки сообщения.
  5. Сервер должен будет отслеживать разговоры; в основном список клиентских пар.
  6. Если вы хотите делать групповые чаты, то преобразование будет списком клиентских списков.
  7. Когда клиент отправляет сообщение на сервер, сервер должен переслать его всем остальным клиентам, которые являются частью диалога.
  8. Возможно, вы хотите, чтобы сервер регистрировал все разговоры.
  9. Вам понадобится как минимум 2 типа сообщений; текст (т. е. чат) и приглашение.
0 голосов
/ 28 марта 2011

Вам нужно будет придумать реализацию протокола;проверить XMPP .Частично проблема заключается в определении того, кому из других пользователей вы будете отправлять сообщение.XMPP помогает решить эту проблему.Я бы предложил, чтобы у каждого пользователя, который подключается к серверу, был поток для обработки соединения.Затем вы можете сохранить все потоки в HashMap, где ключом будет имя пользователя.Затем просто отправьте сообщения в реализацию потока, которая отправит сообщение (я) клиенту.

...