十次方项目开发系列【9】:实现即时通讯&用户微服务功能开发

学习目标:
【了解】即时通讯业务场景和需求;
【了解】短连接和长连接
【了解】websocket协议
【掌握】环信im云实现十次方即时通讯功能

一 即时通讯介绍

即时通信(Instant Messaging,简称IM)是一个允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。 即时通讯技术应用于需要实时收发消息的业务场景。

二 短连接和长连接

即时通讯使用的是长连接

2.1 短连接

客户端和服务器每进行一次通讯,就建立一次连接,通讯结束就中断连接。
在这里插入图片描述

2.2 长连接

是指在建立连接后可以连续多次发送数据,直到双方断开连接。
在这里插入图片描述HTTP从1.1版本起,底层的TCP使用的长连接。

使用长连接的HTTP协议,会在响应头加入代码:Connection:keep-alive

2.3 短连接和长连接的区别

2.3.1 通讯流程
  • 短连接:创建连接 -> 传输数据 -> 关闭连接 ​
  • 长连接:创建连接 -> 传输数据 -> 保持连接 -> 传输数据 -> …… -> 关闭连接
2.3.2 适用场景
  • 短连接:并发量大,数据交互不频繁情况

  • 长连接:数据交互频繁,点对点的通讯

三 websocket协议

3.1 何为websocket协议

1. WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

  • 单工就就像是汽车的单行道,是在只允许甲方向乙方传送信息,而乙方不能向甲方传送 。
  • 何谓全双工:全双工(Full Duplex)是通讯传输的一个术语。双方在通信时允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时进行信号的双向传输。指A→B的同时B→A,就像是双向车道。

2. 在 WebSocket中,浏览器和服务器只需要完成一次握手,就可以创建持久性的连接,并进行双向数据传输。

3. 在推送功能的实现技术上,相比使用Ajax 定时轮询的方式(setInterval),WebSocket 更节省服务器资源和带宽。

4. 服务器向客户端发送数据的功能是websocket协议的典型使用场景
在这里插入图片描述

3.2 websocket常用事件方法

使用 API 创建 WebSocket 对象:var Socket = new WebSocket(url, [protocol] );

  • WebSocket 事件
    以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 Socket 对象:
    在这里插入图片描述
  • WebSocket 方法
    在这里插入图片描述

四 十次方的IM功能

前端页面使用十次方用户微服务认证用户身份,使用环信im云进行即时消息通信。

4.1 技术选型

  • 环信IM云
  • 前端框架 vue
  • IM系统架构:存储层、服务层、逻辑层、接入层

4.2 环境和工具

  • nodejs
  • npm
  • 前端框架 vue
  • 开发工具 idea

4.3环信im云介绍

环信im云是即时通讯云 PaaS 平台,开发者可以通过简单的SDK和REST API对接。

  • 支持安卓,iOS,Web等客户端SDK对接
  • 提供单聊,群聊,聊天室等即时通讯功能
  • 支持富媒体消息,实时音视频和各种自定义的扩展消息

4.4 创建应用

在这里插入图片描述

4.5 接口测试-获取token

  1. 使用环信提供的swagger接口调试页面测试接口

在这里插入图片描述在这里插入图片描述

4.6 十次方即时通讯功能

4.5.1 用户微服务实现
  1. 创建tensquare_user子模块:Maven工程
  2. 在pom.xml中添加依赖
<dependencies>
        <dependency>
            <!--数据库驱动-->
            <groupId>mysql&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值