当前位置: 首页 > 后端技术 > Node.js

基于json的快速websocket解决方案,支持node、web,可自定义中间件

时间:2023-04-04 01:16:51 Node.js

前端快速搭建和node搭建websocket,使用json格式,支持中间件。示例如下,前后端快速传递服务器时间戳。结合redux中的几行代码,就可以将数据传递给react组件了。github:https://github.com/stillyuk/j...serverletwebsocketServer=newJsonWebsocketServer(8899)websocketServer.start()websocketServer.addTask(newServerTimestampTask(websocketServer))websocketServer.use(middleware.ip)websocketServer.use(middleware.version)websocketServer.use(async(connInfo,clientData,next)=>{if(clientData.token!=='abc'){websocketServer.sendClient([connInfo],'error',{errorCode:1,errorMsg:'先登录'})}else{awaitnext()}})clientimportJsonWebsocketClientfrom'../src/JsonWebsocketClient.js'letclient=newJsonWebsocketClient('ws:localhost:8899')client.addWatch('serverTimestamp',null,(a)=>{console.log(a)})client.addWatch('version','1.0')client.addWatch('error',null,(data)=>{console.log(data)})redux中间件和reducer//middlewareconstwebSocketClient=newJsonWebsocketClient()exportfunctionwsUpdateType(type){returntype+'_ws_update'}exportdefault()=>next=>async(action:any)=>{if(!action.wsType){returnnext(action)}if(action.wsType=='close'){webSocketClient.close(action.data)return}webSocketClient.addWatch(action.wsType,action.data,(data)=>{returnnext({type:wsUpdateType(action.type),data:data})})}//reducerfunction套接字(type,value){return(state=value,action)=>{if(action.type==wsUpdateType(type)){returnaction.data}returnstate}}

最新推荐
猜你喜欢