Skip to content

一个websocket的长连接系统,可应用于不同的业务场景(弹幕聊天、PK对局等等)

Notifications You must be signed in to change notification settings

dragonflylxp/longconn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

longconn

一个websocket的长连接系统,可应用于不同的业务场景(弹幕聊天、PK对局等等)

Overview

  • 整体思路【分而治之】
    1.将连接层从业务层剥离,可以单独水平扩展。连接层只负责连接维护、业务层负责消息处理与中转。
    2.连接层与业务层可以通过消息队列(redis/rabbitmq/zeromq)或者rpc(grpc/thrift)等通信,协议可选json和protobuf
    3.连接层水平扩展,负载均衡将用户连接均摊至连接层各节点
    4.业务层水平扩展,通过订阅不同消息渠道可以实现分服、分区、分业务。
    5.连接层中通过接入业务策略,实现房间控制、用户匹配等场景
  • 待确定问题
    1.如何确定连接层单节点最大连接数(经验值200), 确保广播时第一条消息与最后一条消息延迟不超过300ms
    2.连接层到业务层消息通道是瓶颈,在线人数增长后需要引入分布式消息队列。

设计图

  • 总体架构

About

一个websocket的长连接系统,可应用于不同的业务场景(弹幕聊天、PK对局等等)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages