如果要开发一个简单的网页聊天室,需要什么架构呢?需要的具体技术是什么?
一、思考
(1)初版
- 前端html js jquery来写。
- 后端用severlet来写。
- 前端直接传递表单给后端,后端用ajax的回调传递json格式数据给前端更新页面。
- 后端两个服务器,一个是专门验证登陆的,用jdbc链接mysql之类的。
- 另一个是专门负责聊天的,用websocket来实现。
(2)再深一层
前端界面层,具体要写点什么?
- 登录,注册,找回,修改。
- 聊天界面,朋友圈,搜索,增删改查。
前后端想用什么方法交互?
- 简单的html提交表单,包装成json给后端。
- 后端通过ajax的组件发送json给前端,前端获取并且显示。
后端怎么写?
- 用户服务器,对应前端的登录,注册,找回,修改。
- 解析json,多线程,jdbc,myql,severlet。
- 聊天服务器,对应前端的聊天界面,朋友圈,搜索,增删改查。
- 解析json,多线程,jdbc,mysql,socket,severlet
(3)再深一点
登录具体实现?
- 用户前端输入用户名,密码。
- js基本验证。
- js包装成json发送给后端,后端返回结果。
- 前端根据指令做不同显示(账户不存在?账户或密码错误?登录惩罚?验证码错误?)。
后端具体实现?
- 用severlet写。
- 开多线程,接收前端发送的json。
- 然后经过jdbc等等渠道,与数据库交互。
- 返回相应数据,包装成json,发送给前端。
聊天数据传输?
- 用websocket,多线程来做。
- 收到前端的请求之后包装成json,发送给相应websocket对象。
- 服务器将用户的websocket存在map中,键为用户名,值为websocket对象。
- 向某用户发信息时,信息头里面带一个目的用户的用户名,服务器接到后根据对应的用户名找出对应websocket,然后把消息发送到对应的websocket里面。
二、总结
比较简单的分析到这里,之后详细的功能我会一边做一边学。