GitHub 上也看到有人发过一个酱紫的组件,但是觉得功能少了点。
然后自己也撸了一个。(也许重复造轮子了?)
然后,我有了个想法:
- WebSocket 用 JSON 字符串通信,B、S 端各自 parse。
- 取 JSON 中某个字段当作方法名,这样是不是可以模拟我们的 URL 中的 controller 信息嘞?
然后就撸了一个前端的 react-websocket 组件和一个后端 NodeJS 的 websocket-handler。
react-websocket
- 支持 自动重连,可设置重连次数和重连延迟。
- 支持事件 onMessage,onError,onClose
- 其他回调 onCreate,onRetry,
onCreate(wraper, websocket) 第一个参数可以获取到 ws 的一个简单包装,只包装了一下 send 方法,可以直接发送 Object,只做了 JSON.stringify 而已。第二个参数就是创建出来的 WebSocket 对象了。
- 可设置 actionMapping,actionKey,尝试解析消息并调用 actionMapping 里面设置的与 actionKey 同名的方法。
websocket-handler
只是简单包装了一下 nodejs-websocket,实现简单的群发,定向发送加和上面那个组件相同的 actionMapping 以及管理连接。(其实就是都放到一个 map 里边)。
感兴趣的大佬可以来玩一下这个小玩具。
不求 Star,就想问下,测试咋写啊?感觉别人的项目头上有花花绿绿的图标好帅啊。那个要怎么搞?