利用 shortid 替代库 nanoid 配合 sharedworker和BroadcastChannel实现指定发送方的通信

原创
10/22 00:04
阅读数 51

shortid 官方建议使用 nanoid生成唯一键

https://github.com/ai/nanoid/

 

主要是使用该库生成一个id, 发送消息的时候带上, 接收的时候如果有这个id, 表示相应的promise执行完毕, 传入回调的数据

 

注意worker和channel中的数字转换过程中会被转成字符串.... 一定注意类型问题

整体思想是对每一个post生成一个id, 在worker相应的时候带上这个id, 然后在js中将该id对应的promise结束掉

在发送时可以附带指定的接收者数组, 只有接受者才能收到信息

对消息需要再次抽象, 比如查询自己的id和有哪些接收者这些是需要使用promise返回的, 但是发送是不需要的, 所以要设计不同的消息类型和消息中字段的含义, 对于webpack来说, worker中不能使用其他类库, 不然会在打包过程中带上webpack的require导致运行时失效, 估计只能使用import远程或者动态import解决

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部