java netty post_API调用Netty长链接执行发送消息(在线数、用户列表)

前言

在原项目中,对于WebSocket的长连接,聊天系统并没有开放接口出来给第三方的系统调用,只有我们系统内部的人员才知道,确切的说系统内部也没有实际的查询接口,那么我们今天就来实现这个功能。

在Netty下的Websocket长连接中,以API形式获取在线用户数,与在线用户列表,并针对某个用户已API调用的形式进行数据发送,而不需要所谓的前端页面去创建websocket连接。

实践流程

存放Channel的容器

首先,我们需要一个类似ChannelGroup的连接池来存放我们的连接实例,这里我直接在原来本地模拟的一个LikeRedisTemplate中新建了一个ConcurrentHashMap,用于存放对应的用户名——连接实例的键值对。

方便后期API调用时可以通过这个LikeRedisTemplate中的这个Map进行获取、删除及相关信息。

/**存放链接池实例*/

private Map ChannelRedisMap = new ConcurrentHashMap<>();

/**

* 存储对应的用户名与Netty链接实例

* @param name 登录用户名

* @param channel Netty链接实例

*/

public void saveChannel(Object name,Object channel){

ChannelRedisMap.put(name,channel);

}

/**

* 获取存储池中的链接实例

* @param name 登录用户名

* @return {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值