Reactive(响应式)编程
作为反应式编程方向的第一步,Microsoft在.NET生态系统中创建了Reactive Extensions(Rx)库。然后RxJava在JVM上实现了响应式编程。
问题三:什么是函数响应式编程 函数响应式编程(Functional Reactive Programming:FRP)是一种和事件流有关的编程方式,其角度类似EventSoucing,关注导致状态值改变的行为事件,一系列事件组成了事件流。
函数响应式编程(Functional Reactive Programming:FRP)是一种和事件流有关的编程方式,其角度类似EventSoucing,关注导致状态值改变的行为事件,一系列事件组成了事件流。FRP是更加有效率地处理事件流,而无需显式去管理状态。
这些接口对应于reactive-streams规范。它们适用于并发和分布式异步环境:所有(七种)方法都以void“单向”消息样式定义。
RxAndroid: 函数响应式编程(Functional Reactive Programming)也不是新内容,RxAndroid 把 RxJava 带到 Android 环境中。
vue3中使用ref可以监听属性,但是写起来都要加 .value 。vue提供reactive函数,无需加 .value ,但是reactive只能对对象提供响应式。所以我们平时用的时候 基本类型使用ref,引用类型使用reactive。
RxJava和EventBus的区别
EventBus比较适合仅仅当做组件间的通讯工具使用,主要用来传递消息。使用EventBus可以避免搞出一大推的interface,仅仅是为了实现组件间的通讯,而不得不去实现那一推的接口。
RxJava 主要做异步、网络的数据处理,强大之处就是对数据的处理了,而对于处理完后的数据处理是一样的都是观察者模式来通知,也可以把 RxJava 进一步封装出一个 EventBus(RxBus) 库,二者可以转换的。
RxJava是一个响应式函数编程库,而EventBus是一个事件总线库。RxJava 主要做异步、网络的数据处理,而对于处理完后的数据处理是一样的都是观察者模式来通知。
EventBus比较适合仅仅当做组件间的通讯工具使用,主要用来传递消息。
RxJava要比EventBus的应用更广泛,EventBus仅仅是作为一种消息的传递工具,但是RxJava里面几乎可以做任何事情。
OkHttp3实现WebSocket连接
1、WebSocket的框架有很多,了解到OkHttp3也有支持WebSocket,就采用了Okhttp来实现。一个是不需要再引入多一个WebSocket的第三方库,一个是Okhttp3口碑和稳定性都非常好,而且还一直在更新。
2、注释1:WebSocket是一个接口,它的实现类RealWebSocket,该类完成WebSocket的连接、数据请求与接收功能。注释1:将RealCall实例添加至Dispatcher中(下文会介绍Dispatcher)。注释2:通过getResponseWithInterceptorChain()获取响应。
3、最后考虑采用OkHttp方案,基于OkHttp优秀的线程读写控制机制,发现该方案出奇的稳定。
4、1,打开浏览器并创建WebSocket对象:在需要与服务器进行通信的页面中添加JavaScript代码,创建WebSocket对象。
5、okhttp使用ConnectionPool管理连接,里面有一个Deque保存所有的连接。ConnectionPool对象直接在OkHttpClient中new出来,但是访问需要通过在static{}中定义的Internal.instance(为了让外部包的成员访问非public方法)。
6、由于HTTP协议是一个无状态协议,基于HTTP协议实现长链接必须通过ajax轮询或者long pull实现。