C#客户端到客户端消息

时间:2009-06-24 11:43:00

标签: c# xmpp messaging openfire

我会尝试解释我想要先实现的目标。

想象一下,两个用户正在使用Windows窗体应用程序,当用户A打开特定窗体时,会将锁应用于窗体下面的数据记录,以便只有该用户可以在此时进行更改。

用户B列出了所有记录(在网格中),其中包含对用户A已经打开的记录的引用。我们要做的是当用户A打开记录时用户B的记录列表被更新在行旁边显示一个锁定图标,表示该记录正在使用中。

这是我们如何处理消息传递的一个简单示例,但您明白了,用户A做了用户B需要知道的事情。

我已经使用Jabber-net为C#和OpenFire Jabber Server实现了一个系统。基本上,当要发送消息时,新行将插入数据库中的消息表。服务客户端使用SqlDependancy对象监视消息表,以便在新消息准备好时,服务构建相关消息并通过Jabber和OpenFire服务器将其发送到所需的客户端。

这样可行,但OpenFire的开箱即用功能是支持即时消息,这显然不是我想要实现的。我遇到的问题是,如果用户登录到两个应用程序上下文(即测试和实时),OpenFire不知道向哪个发送消息,因为user @ server / resource的JID结构不会注意到该资源。

基本上我目前使用OpenFire和Jabber-net的方式并不完全正确。

是否有一种模式可用于实现我想要实现的目标,即向客户端发送消息告诉它做某事,同时能够指定您发送消息的客户端。 XMPP似乎就是答案,因为我可以构建自己的消息类型来进行解析。

我的应用程序是Windows Forms,.NET 3.5 C#应用程序。

1 个答案:

答案 0 :(得分:0)

我只是添加一些数据来指示哪些应用程序上下文受到影响,让其他客户端决定是否需要处理该消息。