首页 新闻 会员 周边

前端项目使用websocket,该如何进行 业务流程的控制?

0
[已解决问题] 解决于 2018-07-31 14:15

   前端项目,使用websocket,当业务逻辑比较复杂的时候

    业务:

   1:客户端想服务器发送消息 ReqeustA

   2:服务器返回消息 ResponseA

   3:客户端处理消息,然后发送 RequestB

   4:服务器返回消息 ResponseB

        也就是 发送消息B 需要在 A消息返回后,根据前段处理结果来进行

问题总结:在使用websocket 的时候,发送消息是 ws.send(),接受消息是 ws.onmessage()在这种架构下,编写业务逻辑的时候,如何保证 代码的可读性呢?如何确保代码的逻辑清晰?

fthj的主页 fthj | 菜鸟二级 | 园豆:206
提问于:2018-07-24 15:04
< >
分享
最佳答案
0

让业务逻辑代码与 WebSocket 完全解耦

奖励园豆:5
dudu | 高人七级 |园豆:30994 | 2018-07-24 15:34

怎么解耦,给点参考的例子呗

fthj | 园豆:206 (菜鸟二级) | 2018-07-24 15:39

@fthj: WebSocket 只是一个通信协议

dudu | 园豆:30994 (高人七级) | 2018-07-24 15:44

@dudu: 

具体例子


var business = {
login:function(account,password){
ws.send(..........);
}

loginResultHandler:function(returnData){ //处理方法,通过ws.onmessage 调用
......
this.hookUserState(returnData.userId); //执行下一步业务
}
hookUserState:function(userId){
ws.send(............);
}
hookUserStateResultHandler:function(returnData){ //处理方法,通过ws.onmessage 调用

//调用其他操作。
//
}

}

补充说明:很多业务流程有先后顺序,想上面这样的话,代码越来越长,到一定程度之后,整个流程是这里调用那里,那里又调用别的地方,很乱
不容易管理,,感觉维护起来麻烦,

fthj | 园豆:206 (菜鸟二级) | 2018-07-24 15:56

@fthj: 推荐阅读 深入理解JavaScript系列

dudu | 园豆:30994 (高人七级) | 2018-07-24 16:10

@dudu: 谢谢您,非常感谢

fthj | 园豆:206 (菜鸟二级) | 2018-07-24 16:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册