日期:2014-05-20  浏览次数:20601 次

这程序伤不起啊
设计一个网络应用程序,面向多用户的CS程序。
要求:
1.有多台服务器用户登录的时候根据各服务器的运行状况选择更佳的登录的服务器
2.假如A服务器上的用户发送了一条信息,其它服务器上的用户也能同时看到(即时通讯)
3.假如A服务器崩掉A服务器上的用户自动转向其它的多台服务器上

服务端采用mina开发,但不知道怎样设计这个程序。

哪位大虾有比较详细的解决方案没有,如果有每个步骤能详细点吗,有方案贴图更好?


------解决方案--------------------
我没啥这方面经验,随便说下哈。
问题1.每个服务器提供一个取得运行状况的方法(至于具体算法就看你需要了,我也不清楚具体实现。哈哈),返回运行状态,客户端显示,默认取最好的。

问题2.是否可以采用一个集中的即时通讯服务器,其他服务器接收到用户消息都通知这个服务器,这个服务器负责转发给所有其他服务器,其他服务器接收到消息后,判断用户是否在当前机器上,如果在则保留消息,不在则忽略。

问题3.已经登录的客户端保存用户登录状态,如果与当前服务器通信发生故障,则自动访问其他服务器,自动登录。用户会话信息,保存到客户端,就可以避免客户信息跨服务器复制的问题了。

以上纯属凭感觉说的啊,如果有帮助最好,没啥用出的话,请忽略。 嘿嘿