Instant Messanger. Проблемы при отправке сообщения от сервера клиенту.
В классе IMServer реализован серверный поток обслуживания новых клиентов. При подключении нового клиента для него создается новый класс ProtocolService, в котором реализован поток обслуживания данного подключенного клиента.
В buff содержится набор данных от клиента в виде потока байт, первый байт которого содержит информацию о типе запроса или данных (на аворизацию, загрузку контакт листа.. а также отправку сообщения)
switch ((Protocol.ProtocolCommands)buff[0])
{
case Protocol.ProtocolCommands.ToAuthenticate:{}
// Клиент отправляет сообщение другому клиенту через сервер
case Protocol.ProtocolCommands.ToSendMessage:
if (auth != null)
{
IMMessage msg = IMMessage.GetMessageFromBytes(buff, 1);
msgStorage.AddIMMassage(msg);
1) // ? IMServer ss1 = new IMServer();
2) // ? ss1.proc(msg);
}
else
SendStringToClient("You are not authenticated.");
break;
2)- обращение к процедуре отправки сообщения в IMServer
1) - создание нового IMServer
Внутри класса ProtocolService передать сообщение другому клиенту мне кажется невозможно (если вы считаете по-другому, напишите пожалуйста). Мне кажется целесообразнее отправлять сообщения из класса IMServer, но когда мы передаем сообщение из класса ProtocolService в класс IMServer, мы создаем новый класс IMServer, а не возвращаемся в тот, который создал текущий ProtocolService. Как можно обойти этот момент, потому как новый класс пустой и не содержит никакой информации?