交流网站的制作 第1篇
在会话模块中,我们主要实现两个功能:
所以,我们需要新维护两个数据库表 - 会话表,会话用户关系表。
会话表:会话的实体表,存储了有哪些会话及其基本信息。
会话用户关系表:并不是一个实体表,它将 会话 与 该会话下的用户 进行关联。
该SQL中出现了 datatime 属性:是一种用于存储日期和时间的属性。它可以存储从1000-01-01 00:00:00到9999-12-31 23:59:59范围内的日期和时间。
在这两个表中,同样我们在表中插入了几条测试数据。因为每个会话都至少有两个用户(聊天),所以两条SQL为一组数据进行插入 会话用户关系表。
对于这两个表的命名,为了与 HTTP 里的 Session 作出区分,我们在表名前面加上 message 前缀,表示 消息 的 session 。
我们可以推断出该功能的关键实现核心:
会话模块所使用到的应用层协议为 HTTP 协议。
我们针对 会话模块中的两个功能 分别进行应用层格式的约定,即 约定这两个功能所涉及到的请求与响应的格式。
我们进行如下约定:
交流网站的制作 第2篇
接下来我们介绍使用 WebSocket 协议的前端部分。
在这份代码中,我们首先使用 JS 的构造函数 - WebSocket() 来构造出了一个 websocket 对象,该构造函数中的参数 匹配 后端 WebSocket配置类 中的路径参数。websocket 对象有多个事件处理程序:
至此我们已经完成了消息模块,但我们在实现会话模块的获取历史会话列表功能时遗留下了一个空缺:我们需要在获取的历史会话列表中显示最后一条聊天记录。现在我们已经完成了消息模块,可以完善这一空缺:
到目前为止,在线聊天网站已经构造完成。
但是,当项目在本地设备上运行后,由于我们的设备没有外网IP,故无法被其它设备通过网络进行访问。
一般的解决办法是,我们可以租一个云服务器(阿里云,腾讯云等),使用 Xshell 将我们的项目进行远程部署到云服务器上,这样我们就可以使用任意一台设备在浏览器输入网址 通过网络 访问到我们的在线聊天网站。
具体步骤:
如上图所示,我们需要在云服务器上创建与本地环境一个一模一样的数据库(建同样的库与表)
4. 调整项目代码:对于后端代码,需要调整 yml 文件中的数据库配置代码,需要将 url ,username,password 等属性的值调整成与云服务器中的数据库相对应(可参考 小节);对于前端代码,需要将 JS 代码中的 WebSocket 构造方法中的参数进行修改,不再只连接本地路径,代码修改如下
5. 通过 Maven 将项目打包(Jar 包),并将该 Jar 包上传到云服务器
6. 运行 Jar 包
至此,在线聊天网站已搭建完毕。
交流网站的制作 第3篇
我们创建一个 SpringBoot 项目(Maven构建),在创建时导入 4 个重要的依赖:
这四个依赖分别在网络通信,操作数据库等方面提供支持。
源码中的配置如上,需要进行三处修改以适配你本地的 MySQL 数据库:
完成好项目的创建与配置后,我们进行第一个模块的开发 - 用户模块。
在用户模块中,我们主要实现三个功能:
所以,我们需要维护一个数据库表 - 用户表(user 表),用来存储我们的聊天网站项目中有哪些用户及其基本信息。用户表为实体数据表,每条数据可以理解为一个用户实体。
此表涉及三个字段,用户ID,用户名,用户密码。我们在表中插入了几条测试数据。
我们可以推断出每个功能的关键实现核心:
表中涉及到的 session 为我们此项目中使用到的 HTTP 协议中的 Session :
在 HTTP 协议中,Session 是一种用于在客户端和服务器之间维持状态的方法。HTTP 是一种无状态协议,这意味着每个请求都是独立的,不会自动保留任何之前请求的信息。为了在多个请求之间维持用户的状态和数据(例如用户登录信息、购物车内容等),引入了 Session 的概念。在本项目后续的后端代码会有体现。
用户模块所使用到的应用层协议为 HTTP 协议。
每个功能的实现都需要前后端进行数据交流,因此我们针对每个功能进行应用层格式的约定,即 约定每个功能所涉及到的请求与响应的格式。
我们进行如下约定:
交流网站的制作 第4篇
请求: POST /register Content-Type: application/x-www-form-urlencoded username=zhangsan&password=123
响应: HTTP/ 200 OK Content-Type: application/json { userId: 1, username: 'zhangsan' } (如果注册失败,则返回空对象)