chatmed开发日志

  1. 1.使用js完成的线程池

1.使用js完成的线程池

使用js中的worker技术, 我构建出了一个多线程应用, 每个用户会获得一个线程的交流会话. 也就是每一个新用户打开界面, 并且做出启动动作以后, 前端和node端会建立一个ws链接, node端此刻也会启动一个worker线程, 并将生成的id作为唯一标识符, 传递给前端和线程.

同时node端还维持着[id, ws, worker]的队列, 可以根据id找到目前有的ws链接(对应一个前端), worker(对应一个线程).

最终的实现效果就是,用户在前端发送一个消息, 线程会返回一个消息

如果用户刷新页面, 则会删除原有的id,ws以及worker,重新建立链接, 用户发出退出指令也是一样

消息0:代表传递id作为唯一标识

消息1:通知各部分准备删掉这个链接

消息2:链接尚在的时候传递数据


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xranudvilas@gmail.com

💰

×

Help us with donation