为了防止客户端对数据库直接注入,所有使用WebApi作为中间媒介进行数据的转存,对外提供了User接口来做到登录,注册和重置,而在客户端方面,编写了UserHelper类作为DAL层的内容,而为了实现发送消息的功能,采用了WebSocket技术,因为在公网环境下,不可能做到一对一的Socket绑定,所以使用服务器作为媒介,客户端将消息发送给服务器,经服务器转发给目标
而对于客户端,也会开启一个监听线程去接收来自服务器的消息,经过CallBack进行分类显示.而聊天室的原理也就是存在一个UID为”HOST”的用户,而服务器检测到发送给HOST的消息后,会将该消息转发给除发送者以外的所有用户,这样就是聊天室的原理实现。
而在聊天信息的储存方面,通过一个叫做Bucket的结构进行储存,当用户发送信息的时候会在Bucket中存入一个Record对象,这个对象储存了信息发送者,信息接收者和信息主体,而监听服务器的线程接收到Message的消息后,也会创建一个Record存入Bucket(为防止多线程的访问冲突,用lock锁定对象),所以主页面上,绑定事件上
1