Pergunta

Vou tentar explicar exatamente o que eu quero alcançar em primeiro lugar.

Imagine duas usuários estão usando um aplicativo Windows Forms, quando o usuário A abre uma forma particular um bloqueio é aplicado ao registro de dados subjacente ao formulário de modo que somente o usuário pode fazer alterações nesse momento.

O usuário B tem uma lista de todos os registros (em uma grade) que, entre outros contém uma referência para o registro já aberta pelo usuário A. O que queremos fazer é quando o usuário A abre lista os registros do usuário do B de registros é atualizado para mostrar um ícone de cadeado ao lado da linha para indicar o registro está em uso.

Este é um exemplo trivial do que fazemos com mensagens, mas você começa a idéia, o usuário A faz necessidades algo o usuário B para sabe sobre ele.

Eu tenho implementado um sistema usando Jabber-net para C # e um OpenFire Jabber Server. Basicamente, quando uma mensagem está a ser enviada, uma nova linha é inserido em uma mesa de mensagens no banco de dados. A tabela mensagens é assistido por um cliente de serviço usando o objeto SqlDependancy, de modo que quando uma nova mensagem está pronto o serviço constrói a mensagem relevante e envia para o cliente desejado via Jabber eo servidor OpenFire.

Isso funciona OK, no entanto OpenFire está fora da funcionalidade caixa é para apoiar Instant Messaging que, obviamente, não é o que eu estou tentando alcançar. O problema que tenho é que, se um usuário está conectado a dois Aplicação Contextos (ou seja, Test and Live) OpenFire não sabe qual enviar uma mensagem para porque a estrutura JID do usuário @ servidor / recurso não toma conhecimento do recurso.

Basicamente a maneira que eu estou usando atualmente OpenFire e Jabber-rede não é muito justo.

Existe um padrão que eu possa usar para conseguir o que eu quero alcançar ou seja, enviar uma mensagem para um cliente dizendo que fazer alguma coisa, enquanto ser capaz de especificar qual cliente você está enviando a mensagem também. XMPP parecia ser a resposta porque eu posso construir minhas próprias mensagens tipos a ser analisado.

A minha aplicação é um Windows Forms, .NET 3.5 C # aplicativo.

Foi útil?

Solução

Eu tinha acabado de adicionar mais alguns dados para indicar qual contexto de aplicativos é afetado e ter os outros clientes decidir se eles precisam lidar com a mensagem ou não.

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