我们要开发一个类似QQ的聊天程序 服务端主要都做些什么事情 客户端做些什么事情 数据库是通过服务端连接 发送数据到客户端 还是直接通过客户端连接获取数据? 我是这样想的,数据库是通过服务端连接 然后服务端和客户端使用通讯技术交互传输数据不知道对不对,烦请大侠路过给看一下,谢谢了,小弟在线等!
我是这样想的 服务端用Socket侦听当前客户端连接状态 服务器只做握手服务 然后好友之间点对点 数据的话使用WCF来获取 不知道对不对 我想这样 既能减轻服务器负担
肯定不能让客户端直接连接数据库。
聊天程序有两种模式:
1——
服务端中转。就是任何两个客户端的通信都通过服务端进行中转,先发给服务端,再由服务端发送给接收端。这个模式一般很少采用,除非是基于Web方式的应用。
2——
服务端只做验证与握手服务,聊天双方直接通信。该方案中服务器端仅仅提供帐户安全认证、双方的链路连通服务(即俗称的打洞服务)以及其它必要的业务需求(如记录用户聊天日志以备相关单位检查,嘿嘿,QQ就做了这个)。
我觉得您说的第二种方案还是不错的,但是第一种可能更接近我们的需求,您能具体的跟我讲讲吗,比如有什么资料,技术,小弟是菜鸟一个,刚出道,懂得不是很多!嘿嘿 谢谢,QQ:283637883
@三秦人: 呵呵,我也就抛砖引玉而已。我对这个原理了解点,具体到应用项目则没有怎么做过,这个呢,有很多网站上都有在线客服功能(比如53KF服务,阿里旺旺、WebQQ都支持),他们一般用的就是基于Web的方式,不过,这些不纯粹是Web聊天,他们的客服端一般都使用桌面应用。
类似的聊天讨论,在这个园子里,你搜索下,有不少。
@无之无: 我实现的是消息通过服务器中转的,但是传文件是双方直接发的,两个客户端在不同的内网之中,这个怎么弄啊!
你们开发是公司内部用么?
是的
服务器端主要负责用户验证、数据中转、协助建立连接等。客户端主要就是UI控制、数据发送等。通讯协议可以采用基于http的XMPP,这样有现成的库,开发难度小一点。
具体说说
@三秦人:具体的设计的话,你参考一下xmpp的说明,应该不难做出来,只不过,在客户端设计的时候,要使用多线程,将数据发送和UI分离。服务器端的话,应该可以直接使用一个xmpp库的服务器端就可以了,当然了,你要自己实现一下验证之方面的东西。其他的话,应该就没什么了。
虽然是这样,但是还要应对NAT穿透等问题,不是很好处理。