SharedWorker源码解析

最近工作需要了解WebWorker,根据RTFSC原则,空下来看一下Chrome的SharedWorker源码。

ShareWorker是共用Worker,Chrome的实现调用new SharedWorker会分配独立进程,不管调用多少次都只有这一个实例。除了进程管理,SharedWorker还需要通信,Chrome中SharedWorker通过MessagePort通信。

SharedWorker.cpp

其实SharedWorker挺简单的,进程管理,通信,下面看通信是如何实现的(急需恶补一番底层通信知识,预定下周把底层通信手段学习一遍)。

好吧,这个类也不怎么干活啊,活在WebMessagePortChannel和MessagePort里面做。

MessagePort

主要就是entangle函数里面,会做一次remote.setClient(this),然后dispatchEvent就很方便了。疑问就是 为什么postMessage会做一次disentangle

就是port看的晕晕的,还是去理解一下底层通信吧.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注