华为云应用中间件 DCS 系列—Redis 实现(视频直播)消息弹幕
云服务、API、SDK,调试,查看,我都行
阅读短文您可以学习到:应用中间件系列之 Redis 实现(视频直播)消息弹幕
1 什么是 DEVKIT 华为云开发者插件(Huawei Cloud Toolkit),作为华为云围绕其产品能力向开发者桌面上的延伸,帮助开发者快速在本地连接华为云,打通华为云到开发者的最后一公里。Huawei Cloud ToolKit 是围绕华为云开发者生态工具体系打造的一系列 IDE 插件,支持 VS Code、IntelliJ IDEA 等系列平台、以及华为云自研 CodeArts IDE ,帮助开发者更高效、便捷的搭建应用。致力于为开发者提供更稳定、快速、安全的编程体验。
体验路径:https://developer.huaweicloud.com/develop/toolkit.html
2 IDE 与 DEVKIT 的关系 2.1 什么是 CodeArts IDE?CodeArts IDE 是一个集成开发环境(IDE),兼具源代码编辑器的简易性和开发人员工具的强大功能,如代码补全和调试。
下载路径:https://developer.huaweicloud.com/develop/toolkit.html
2.2 IntelliJ IDEA 与 DEVKIT 的关系安装准备
下载并安装 JDK1.8 或更高版本。
下载并安装 IntelliJ IDEA 2020.2 或更高版本。
安装验证
在 IntelliJ 系列平台上安装插件成功后在左侧的导航栏中可以看到 Huawei Cloud Toolkit 图标,点击后面板会出现 Huawei Cloud API 的字样,则说明安装成功。
下载路径:https://developer.huaweicloud.com/develop/toolkit.html
2.3 CodeArts IDE 与 DEVKIT 的关系 API 插件是 CodeArts IDE 原生内置的插件,默认已经安装。左侧的导航栏中可以看到相关图标。
下载路径:https://developer.huaweicloud.com/develop/toolkit.html
2.4 Visual Studio Code IDE 与 DEVKIT 的关系安装准备
下载并安装 Visual Studio Code 最新版本。
安装验证
在 VS Code IDE 安装插件成功后在左侧的导航栏中可以看到 Huawei Cloud Toolkit 图标,点击后面板会出现 Huawei Cloud API 的字样,则说明安装成功。
下载路径:https://developer.huaweicloud.com/develop/toolkit.html
3 Redis 实现(视频直播)消息弹幕示例(Java 版本)3.1 使用 Redis 实现排行榜功能版本说明
本示例基于华为云分布式缓存服务 Redis 基础版 5.0 开发。
简介
Redis 实现(视频直播)消息弹幕示例(Java 版本)
直播间的在线用户列表,礼物排行榜,弹幕消息等信息,都适合使用 Redis 中的 SortedSet 结构进行存储。
例如弹幕消息,可使用 ZREVRANGEBYSCORE 排序返回,在 Redis 5.0 中,新增了 zpopmax,zpopmin 命令,更加方便消息处理。
本实践介绍如何使用 Redis 实现(视频直播)消息弹幕功能。
开发前准备
注册华为云账号,详细操作请参见如何注册华为云管理控制台的用户?,并完成实名认证。
已购买具有公网 IP 的 ECS,详细操作请参见购买并登录 Linux 弹性云服务器。
已购买 DCS 缓存实例,详细操作请参见购买缓存实例,且需保证 DCS 实例与已购买具的 ECS 在同一虚拟私有云、子网内,并在已购买具的 ECS 上配置公网访问 Redis,详细操作请参见使用 Nginx 实现公网访问 Redis 4.0/5.0 的单机/主备/Proxy 集群实例。
安装 SDK
您可以通过 Maven 方式获取和安装 SDK,首先需要在您的操作系统中下载并安装 Maven ,安装完成后您只需要在 Java 项目的 pom.xml 文件中加入相应的依赖项即可。
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>开始使用
导入依赖模块
//导入数据类型类 import java.util.Set;//Redis 客户端 Jedis 类 import redis.clients.jedis.Jedis;
生成直播间弹幕数据
示例代码
int num = 5;// 随机生成进入直播间发弹幕用户数据 for (int i = 0; i < num; i++) {jedisClient.zadd(key, danmuOrder + i,"message" + (i + 1) + (i + 1) + (i + 1) + (i + 1) + (i + 1) + (i + 1));}
获取直播间弹幕
示例代码
// 获取所有新增弹幕 Set<String> sortedDanmuList = jedisClient.zrevrangeByScore(key, danmuOrder + num, danmuOrder);for (String danmu : sortedDanmuList) {System.out.println(danmu);}
3.2 展示效果编译并运行以上 Demo 程序,结果如下:
直播弹幕列表
弹幕内容: message-07f1add5-2f85-4309-9f31-313c860b33dc, 发送时间: 1686902337377
弹幕内容: message-2062e817-3145-4d8b-af7f-46f334c8569c, 发送时间: 1686902337394
弹幕内容: message-ad36a0ca-e8bd-4883-a091-e12a25c00106, 发送时间: 1686902337396
弹幕内容: message-f02f9960-bb57-49ae-b7d8-6bd6d3ad3d14, 发送时间: 1686902337412
弹幕内容: message-5ca39948-866e-4e54-a469-f958cae843f6, 发送时间: 1686902337457
弹幕内容: message-5cc8b4ba-da61-4d01-9625-cf2e7337ef10, 发送时间: 1686902337489
弹幕内容: message-15378516-18ce-4da7-bd3c-35c57dd65602, 发送时间: 1686902337495
弹幕内容: message-1b280525-53e5-4fc6-a3e7-fb8e71eef85e, 发送时间: 1686902337540
弹幕内容: message-adf876d1-e747-414e-92a2-397fc329bd58, 发送时间: 1686902337541
弹幕内容: message-1d8d7901-164f-4dd4-abb4-6f2345164b0e, 发送时间: 1686902337582
弹幕内容: message-fb35b1b4-277a-48bf-b22b-80070aae8475, 发送时间: 1686902337667
弹幕内容: message-973b1b03-bf95-44d8-ab91-0c317b2d61b3, 发送时间: 1686902337755
弹幕内容: message-1481f883-757d-47f7-b8c0-df024d6e64a4, 发送时间: 1686902337770
弹幕内容: message-b79292ca-2409-43fb-aaf0-e33f3b9d9c8d, 发送时间: 1686902337820
弹幕内容: message-66b0e955-d509-4475-9ae5-12fb86cf9596, 发送时间: 1686902337844
弹幕内容: message-12b6d15a-037a-47ee-8294-8625d202c0a0, 发送时间: 1686902337907
弹幕内容: message-fbc06323-da2a-44b8-874b-d2cf1a737064, 发送时间: 1686902337927
弹幕内容: message-7a0f787c-aff1-422f-9e62-4beda0cd5914, 发送时间: 1686902337977
弹幕内容: message-8ba5e4e0-22af-4f80-90a6-35062967e0fd, 发送时间: 1686902337992
弹幕内容: message-fa9e1169-e918-4141-9805-87edcf84c379, 发送时间: 1686902338000
弹幕内容: message-5d17be15-ba2e-461f-aba5-65c20c21d313, 发送时间: 1686902338059
弹幕内容: message-dcedc840-1be7-496a-b781-5b79c2091fe5, 发送时间: 1686902338067
弹幕内容: message-9e39eb28-6629-4d4c-8970-2acdc0e81a5c, 发送时间: 1686902338102
弹幕内容: message-030b11fe-c258-4ca2-ac82-5e6ca1eb688f, 发送时间: 1686902338211
弹幕内容: message-93322018-a987-47ba-8093-3937dddda97d, 发送时间: 1686902338242
弹幕内容: message-bc04a9b0-ec83-4a24-83f6-0a4f25ee8896, 发送时间: 1686902338281
弹幕内容: message-c6dd96d0-c938-41e4-b5d8-6275fdf83050, 发送时间: 1686902338290
弹幕内容: message-12b70173-1b86-4370-a7ea-dc0ade135422, 发送时间: 1686902338312
弹幕内容: message-a39c2ef8-8167-4945-b60d-355db6c69005, 发送时间: 1686902338318
弹幕内容: message-2c3bf2fb-5298-472c-958c-c4b53d734e89, 发送时间: 1686902338326
最新的 5 条弹幕信息
弹幕内容: message-2c3bf2fb-5298-472c-958c-c4b53d734e89, 发送时间: 1686902338326
弹幕内容: message-a39c2ef8-8167-4945-b60d-355db6c69005, 发送时间: 1686902338318
弹幕内容: message-12b70173-1b86-4370-a7ea-dc0ade135422, 发送时间: 1686902338312
弹幕内容: message-c6dd96d0-c938-41e4-b5d8-6275fdf83050, 发送时间: 1686902338290
弹幕内容: message-bc04a9b0-ec83-4a24-83f6-0a4f25ee8896, 发送时间: 1686902338281
Process finished with exit code 0
4 体验插件的魅力华为云 devkit 已上线:https://developer.huaweicloud.com/develop/toolkit.html
评论