Pergunta

Estou trabalhando em um programa de mensagens instantâneas em C#(apenas para aprender).
Só quero saber se meu caminho está certo ou errado.
Criei uma classe cliente que contém uma rede de rede e funções de leitura/gravação.
O servidor cria um novo thread para todos os clientes, o thread ouça para novas mensagens.

Alguma maneira melhor?

Foi útil?

Solução

Você não precisa necessariamente gerar um tópico para cada cliente. Eu investigaria o padrão de design do Observer, pois aborda o problema da publicação de assinatura, o que é uma boa maneira de analisar um aplicativo de mensagens instantâneo, principalmente se você quiser vários ouvintes para um falador. Aqui está um bom lugar para começar: http://www.blackwasp.co.uk/observer.aspx. Este link discute o padrão do observador e menciona mensagens instantâneas: http://www.oodesign.com/observer-pattern.html.

Você pode achar que uma abordagem de thread única pode acompanhar muitas mensagens. Dependendo de como você projeta suas aulas, você pode achar útil colocar conversas inteiras em seu próprio tópico. Você também deve pensar em usar filas para lidar com mensagens de entrada e saída, com os leitores da fila em seu próprio tópico.

Soa como um projeto divertido.

Outras dicas

Experimente o WCF. Aqui é uma boa amostra.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top