-
Notifications
You must be signed in to change notification settings - Fork 0
1.ChatRoom 特性
JianJun edited this page Mar 21, 2023
·
3 revisions
ChatRoom
自动处理了网络配置中需要提供的复杂参数,也解决了许多在网络传输中会遇到的麻烦问题.
-
高层对象:只有需要通过网络来传输
Python
数据对象的情况使用ChatRoom
才是合适的; -
安全高效:传输层使用
TCP
协议,会话层使用了RSA
+AES
类似TLS
, 密码保存使用了bcrypt
算法; -
全自动化:
ChatRoom
的优势在于无论客户端主机是局域网机器,公网机器,还是不同内网环境的机器,都会由Room
自动调度后分配集群的最高效连接方式; -
逻辑隔离:
ChatRoom
让开发者专注于业务逻辑处理,而不用考虑网络交互的实现; - 强拓展性:简洁快速的增加或减少集群节点,方便的节点管理,强大的回调函数设计,方便高效的交互功能;
- 高效运维:简洁易配置的日志系统,开包即用的用户监控,强大的自定义日志管理,方便的管理员邮件通知,全方位监控集群的运行;
会话层加密可选关闭, 提升的传输性能主要由AES加密带来的损失, 关闭加密后提升性能不明显, 加密的一端可以自动兼容未加密的一端.
建议Room
开启加密, 可靠内网环境不开启加密, 公网User
开启加密.
- 局域网内互相连接:只要两个
User
处于同一局域网内,那么他们会直接局域网内连接; - 具有公网IP的
User
:在不满足1
的情况下,其他机器都会使用公网IP进行连接; 中继连接:1
和2
都不满足的情况下,相当于User
被网络隔绝了,那么会通过Room
进行数据转发;
中继连接的取消是因为系统功能的逐步完善后中继连接无法向下兼容新功能,所以取消了中继连接,在实际使用中,尽量让所有的用户节点保持在同一可以互相访问的网络空间里,如果无法保证可以使用VPN或者端口映射或者其他一些方法来处理网络隔离的问题.
ChatRoom架构图
ChatRoom
的优势是所有关于 User
的连接信息都由 Room
进行统一管理, 每个 User
只需管理自身的连接信息, 而不必存储其他可能的 User
的信息. 每次 User
的离线, 上线, 物理机的更改或增加新节点等行为都会由 Room
进行调度处理.
ChatRoom
的弱势是在网络复杂或者用户过多的情况下, Room
调度能力和服务端 User
的负载情况会被糟糕的网络和过多的用户所拖累, 所以不适合传统的运行于公网上的多用户的服务, 而适合用于内网多台机器交互运算的分布式计算任务上.