- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/KB/IP/PrismServer.aspx
/KB/IP/MyDownloader.aspx
PrismServer:基于。NET 2.0的聊天客户端与服务器端解决方案
PrismServer是一个添加聊天和其他通用目的多用户消息到你的。NET应用程序的完整的解决方案,其理念是作为一个聊天应用程序,比如创建和进入聊天室,发送和接收聊天信息,并且管理用户配置,PrismServer提供了简单的属性、方法和事件来简化开发这类应用程序的复杂性,代码部分由如下几个项目所组成:
ACG.Prism:一个。NET类库程序集,包含封装了PrismServer的类和组件,重要的组件和类分别是:
.PrismConnection组件:允许一个客户端应用程序连接和与PrismServer通信。提供了属性来指定主机地址和服务器端的端口号,方法来初始化通信,事件来响应各种不同的行为,比如聊天信息到达,新应户进入聊天室,或者是来自管理员的信息。
.PrismServer组件:封装实际的服务器端的prismServer,允许多个进入的客户端通过Sockets来连接和通信。这个组件是任何服务器PrismServer的基础。并且提供了属性和事件以便于服务器的用户界面能够保存日期。
.PrismUser类:表示一个当前登录到聊天服务器的单 个用户。这个类将在客户端和服务器端被使用
.PrismRoom类:代表一个聊天房间,聊天房间可以包含一个或多个PrismUsers,用于在它们之间进行通信。
.PrismServerAdmin应用程序:一个Windows Forms应用程序,是一个完整的聊天服务器端应用程序。该程序提供了一个用户界面,因此服务器操作员能够看见谁己经连接,监视活动和性能历史
.ChatNDraw应用程序:一个样例的客户端应用程序,用户能连接到一个聊天服务器,创建和输入聊天房间,与其他用户聊天,并且使用一个共享的绘图板。
PrismServer是一个多用户擎,基于Windows策略游戏,由SCG创建,SCG权利在1990年中期开始制造Windows游戏,有几个资历允许多个玩家来调整,创建游戏,并且实时的在Internet上玩游戏。
写一个客户端应用程序
为了允许一个客户端应用程序经由PrismServer进行连接和通信,使用PrismConnection组件,在一个WinForms应用程序中,可以简单的拖放组件在应用程序的Form上,然后在设计时设置其属性,PrismConnection公开了三个属性必须在连接期间进行设置:
1,Host:指定聊天室服务器的域名或IP地址
2,Port:指定聊天端口号,PrismServer被配置为使用的服务器机器。
3,SubjectName:Subject Name的概念提供了多个客户端应用程序使用一个PrismServer的能力,仅接收源于同一个客户端的消息,PrismServer将路由消息仅到共享相同Subject Name的客户端。你应该提供一个字符串值响应你的应用程序名称。
连接
一旦上面的属性被设置,设置Active属性为true尝试建立一个连接,这个行为将阻塞应用程序直到连接建立,或者一个异常被触发。
登录
一旦一个连接被建立,下一步是使用用户名/密码登录进PrismServer,PrismConnection组件提供了两个方法能被用于登录进服务器:Login和LoginNew,这允许用户使用一个己注册的用户名和密码来登录进,或者是一个全新的用户。客户端用户界面也应该分别提供路径以便于用户能输入进行登录。
调用Login方法使用之前注册的用户名和密码进行登录时,这个调用并不阻塞。PrismConnection将触发LoginOK事件或者是LoginError事件。可能的错误是无效的密码,用户名在服务器端注册表中没有找到。
调用LoginNew来使用一个新的用户名来登录服务器,该方法接受一个PrismUser对象的实例,该类实例包含了新用户的信息,组件库名含一个PrismUserInfoDialog对话框组件能够被用于快速创建一个PrismUser实例,可以查看ChatNDraw演示客户应用程序来查看该组件的实际应用。这个调用是非阻塞的。且PrismConnection将由触发LoginOK或LoginError呈现。可能的错误包括用户名己经存在,或指定了无效的用户名。
在客户端,你总是接受到一个本地的PrismUser实例,用于连接到ThisUser属性的引用。
PrismRooms
聊天房间
每个连接到PrismServer的客户端将占用一个PrismRoom的房间,只能与相同房间的客户进行聊天。你的客户端应用程序将看到所有的PrismRooms己经被创建,经由其Subject Name来共
文档评论(0)