备注:本文读者应当掌握面向对象编程和函数式编程,极力推荐先了解和学习rdux的设计思想。
几个月之前我开始用单页应用(spa)的方式的方式编写一个动态业务需求的项目。和大多数的单页应用一样,随着业务逻辑和状态增多使得我们的应用日益庞大、臃肿。
需求说明
这是我一个创业项目的核心产品,因为还处于早起发展阶段以及商业竞争等因素,这个产品的业务变化是相当大的。
可扩展的通信层
我们具有相对稳定的业务领域,然而还是会有其他的因素影响着产品的状态,我们具有如下的通信需求:
用户
RESTfulAPI
在此基础上可能会有(或没有)如下的:;
与现有用户建立P2P链接的相关成员
与服务器进行实时的通讯
为支持不同的通信协议(HTTP,WbSockt,UDP[wbRTC])我们需要不同格式的数据:
HTTP/WbSockt采用JSON的通信格式
JSON-RPC格式的WbSockt通信
BERTorBERT-RTC格式的WbRTC或WbSockt通信
BERT通信协议非常适合P2P通信方式,尤其对于二进制数据的传输,比如图片以及不适合文本表示的数据。
为实现所有服务之间的通信,RxJS看起来是一个很不错的选择,通过它可以方便的管理各种类型的异步事件。
Givnallthsrvicswndto北京哪家医院是最好的白癜风专科医院白癜风医治