聊天工具的开发(1)
来源:互联网 发布:津巴布韦通货膨胀知乎 编辑:程序博客网 时间:2024/06/05 20:13
这一段时间公司的项目不是特别的紧,无事之余我突然有一种想开发一个聊天工具的
想法,于是就一步一步做了起来。
首先是对于目前网络上经常使用到的聊天工具进行了分析,对于我来说最熟
悉的就是QQ。我对使用QQ的操作以及QQ的执行过程进行了仔细的观察,当然观察的内
容也只是和我想做的部分相关,之余QQ游戏之类没有做详细的调研。我想对于QQ这样
一个聊天工具平台而言,主要的架构几乎肯定是C/S的结构。腾讯公司有自己的QQ服务
器,每个QQ用户具有QQ客户端。对于一个普通用户而言,使用QQ的过程大家都是十分
熟悉的,肯定是先要登录QQ网站申请QQ账号,然后打开QQ客户端输入ID号与PassWord
登录QQ服务器,然后与好友聊天或在自己的群中聊天。
我在做我的聊天工具的过程中一直在考虑几个问题:
1客户端与服务器究竟是TCP连接,还是UDP连接?对于每个客户端而言,登
陆时服务器需要做那些工作?
我的聊天工具采用了TCP连接,我在服务器中创建了一个监听套接字,监听
客户端发送的连接请求。当有一个客户端准备上线时将向服务器发送连接请求,监听
套接字将创建data socket与此客户端进行对话。然后用户输入ID和PassWord进行登录
,客户端将把ID和PassWord发送给服务器,服务器接收到登录信息后将查询用户信息
数据库,检查登录信息是否正确。如果登录信息有误则服务器向客户端发送出错提示
,如果正确会进一步检索数据库,找到此客户的好友并发送好友信息至客户端。
也就是说,服务器会对客户端的登录信息进行数据库检查,会将客户端的
好友信息发送给客户端。前几天看了别人对于OICQ的评述,有人认为在客户端登录时
,对于用户登录信息的CHECK首先是在客户端完成的,也就是说如果你过去在某台电脑
上用过OICQ,那么的你上次输入的密码将被保存在本地,当然密码是加密的,当你再
次在这台电脑上登录时,客户端会首先将你输入的信息与本地保存的信息进行比较,
如果正确就算是登陆成功,如果不正确会与服务器连接,服务器会去查询数据库。我
觉得这个登录的采取方案最大的好处就是减轻了服务器的压力,服务器少查询了一次
数据库。另外,我的聊天工具的服务器会在客户端登陆成功以后,将客户的好友信息
放送给客户端。这里的好友信息包括好友的id、nickname、好友目前的ip、好友的状
态(在线或是离线或是隐身),但是我观察了QQ当你的网络处于离线状态时,你登录
QQ,虽然无法登陆但是却能显示出你的好友,当然他们都是离线的,这说明好友的信
息部分是存在本地机器中(前提是以前你至少在这一台电脑上用过一次QQ)。这种实
现机制的好处也是减轻了服务器的负担,同时也减轻了客户端的负担,每一次用户成
功登录以后,服务器不在需要向客户端传递其好友的信息,那么好友的目前状态信息
由谁来通知呢?我想最好的办法就是由好友自己来传递。
- 聊天工具的开发(1)
- 基于JAVA的聊天工具开发
- IOS开发:XMPP聊天工具的使用
- python简单聊天工具开发
- 分享知识 用python开发简单的聊天工具
- Android 开发即时聊天工具 YQ :(一) Socket 初步
- Android 开发即时聊天工具 YQ :(二) 完成登陆界面
- Android 开发即时聊天工具 YQ :(三) 实现登陆功能
- Android 开发即时聊天工具 YQ :(四) 获取好友列表
- Android 开发即时聊天工具 YQ :(五) 发送消息
- Android 开发即时聊天工具 YQ :(六) 最近会话列表
- Android 开发即时聊天工具 YQ :(七) 气泡聊天
- Android 开发即时聊天工具 YQ 《更新》(源码下载)
- Android 开发即时聊天工具 YQ :(八) 添加/删除好友
- Android 开发即时聊天工具 YQ :(一) Socket 初步
- Android 开发即时聊天工具 YQ :(二) 完成登陆界面
- Android 开发即时聊天工具 YQ :(三) 实现登陆功能
- Android 开发即时聊天工具 YQ :(三) 实现登陆功能
- MFC的 CString 学习笔记 -2
- Reporting Services 2005 for the DBA – Connectivity Issues
- 事务和锁(五)
- MFC的 CString 学习笔记 -3
- Hadoop Hbase适合存储哪类数据?
- 聊天工具的开发(1)
- 2000之日志传送功能-问题解决
- Windows SDK笔记(二):在窗口上建立控件
- 实用的检查程序(1)
- 第一次发表
- WinInet API 的异步方式使用
- Xen虚拟化技术首次进入国内IDC行业应用
- 实用的检查程序(2)
- Windows SDK笔记(四):模式对话框