使用kotlin/java开发一个实时数据推送服务

# 起因

> 最近对websocket比较感兴趣,然后通过vercel看到了ably,pusher等实时推送消息的服务,但是这些服务商要么是延迟大,要么是有消息推送限制,所以我就想着自己写一个消息推送服务,也不是这么难。

# 思路

> 我准备用kotlin写这个服务端(因为我主要使用kt编程)当然java也可以百分百兼容。

 

 

> 整体思路就是搭建一个ws服务器,然后使用不同的路径来区分不同的消费者,订阅者(consumer,subscriber)或者生产者(producer),生产者可以主动将消息推送给订阅者,订阅者可以订阅不同的channel来区分不同的信道。

 

> 可以使用多种ws服务器 例如`spring boot` `ktor`等,在客户端ws连接到服务器之后将客户端的`session` 添加到一个使用频道区分的`session array`中如果生产者要发送消息可以遍历这个列表使用`.send()`方法来推送消息

 

> 生产者接口可以添加`/publish`端点来接受链接,可以使用jwt,token,secret header来验证连接,也可以不添加验证方法

 

> 避免滥用可以使用随机生成的client id来验证自己,只有提供相同的client id的订阅者,生产者才能进行操作

> 现在一个可用的demo已经开源在github: https://github.com/RTAkland/kwsify

温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiaoman1221@yhdzz.cn,工作室将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有。

给TA投喂
共{{data.count}}人
人已投喂
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索