Prodan Labs Prodan Labs
4年前
IoT基础架构的演进 — 边云自定义消息传输
边缘计算不仅仅是将应用部署在边缘,并对其进行自动化的监控和运维。在许多应用场景里,边缘和云上应用需要进行特定的消息传输、数据交换等,以完成边云协同的业务处理。例如,用户需要从云端发送命令至边缘的应用来触发特定的业务,或者边缘设备需要将采集的业务信息上传至云端处理。KubeEdgev1.6版本增加了自定义边云消息传输的支持,用户可以根据场景,借助Rule
Wesley13 Wesley13
3年前
IM中的万人群聊技术方案实践总结(转)
1、引言在不了解IM技术的人眼里,群聊是再平常不过的功能而已,万人群聊?应该也不难实现吧?!确实,从前端功能界面上来看,群聊无非就是个循环向群员发送消息的一对多聊天消息分发模式而已,难在何处?真实的情况是,群聊是IM系统中的高难度技术点之一。难在哪?难在服务端!从某种角度上说,群聊功能的架构设计和技术实现的品质,可以代表这款IM软件
Wesley13 Wesley13
3年前
C#的单例模式 以及 消息分发机制实现
C单例模式,多线程安全//Singleton.cspublic class Singleton<T where T : new(){    private static T _instance;    private static object _lock  new object();
Stella981 Stella981
3年前
Notification使用详解之二:可更新进度的通知
上次和大家分享了关于Notification的基础应用,包括简单的通知和自定义视图的通知。今天和大家分享一下如何实现一个可更新进度的通知。我们将会模拟一个下载任务,先启动一个线程负责模拟下载工作,在这个过程中更新进度信息,然后下载线程把最新的进度信息以消息的形式,发送到UI线程的消息队列中,最后UI线程负责根据最新的进度信息来更新进度通知的UI界面。
Stella981 Stella981
3年前
Netty(七):流数据的传输处理
SocketBuffer的缺陷对于例如TCP/IP这种基于流的传输协议实现,接收到的数据会被存储在socket的接受缓冲区内。不幸的是,这种基于流的传输缓冲区并不是一个包队列,而是一个字节队列。这意味着,即使你以两个数据包的形式发送了两条消息,操作系统却不会把它们看成是两条消息,而仅仅是一个批次的字节序列。因此,在这种
Stella981 Stella981
3年前
Spring Cloud(七)《基于RabbitMQ消息总线方式刷新配置服务》
!(https://oscimg.oschina.net/oscnet/2bcf28bf1419a03a3e9ecd562c8fc5dbcd5.jpg)作者:付政委读书不觉已春深,一寸光阴一寸金。不是道人来引笑,周情孔思正追寻。微信公众号:bugstack虫洞栈沉淀、分享、成长,专注于原创专题案例,以最易学习编程的方式分享知识
Stella981 Stella981
3年前
FinBus
1\.一个程序应该建立几个收发的传输端点?一个传输端点可以用来传输一类消息,每个传输端点关联的传输通道数则要根据发送端和接收端的分区个数来确定,一般为两者的乘积。两个不同名称的传输端点也可以关联到同一传输通道的不同端。2\.只启动发送端或接收端组件,是否会收到对方的超时事件?对于发送端组件,有消息发出后,接收端组件还未启动
Stella981 Stella981
3年前
Spring Boot与RabbitMQ结合实现延迟队列的示例
背景何为延迟队列?顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处理。这是就可以使用延时队列将订单信息发送到延时队列。场景二:用户希望通过手机远程遥控
搭建平台吧 搭建平台吧
2年前
哈希竞猜的未来趋势
哈希(Hash)是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(HashValue)、杂凑值或者消息摘要。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。一致性hash算法提出了在动态变化的Cache环境中,判定
语音消息使用 remote 地址在 android 手机上播放失败
由于remote地址中有特殊字符,导致播放报错,可以把地址使用encodeURI转换后即可正常播放。示例代码letinnerAudioContextuni.createInnerAudioContext();innerAudioContext.autopl