在控制层Websocket调用顺序

在控制层Websocket发送消息,如何控制在接口返回后客户端再接收这个消息,并调用另一个接口?

如:

void 接口1(){

//调用websocket发送消息,提示客户端调用接口2

}

void 接口2(){

}


评论区

zzutligang

2022-04-19 16:50

没看懂问题,最好把问题描述详细一些

steven_lhcb_9527

2022-04-20 10:54

接口1是save某个表的操作,完成后通过websocket通知用户端,用户端接收到消息后去请求接口2。接口2为列表该表展示接口。

steven_lhcb_9527

2022-04-20 10:56

由于websocket很快,save操作还没进行玩,用户都已经调用接口2,就会导致数据不一致的问题,就是不可重复读。

杜福忠

2022-04-20 14:16

@steven_lhcb_9527 为什么不等save操作完了,再发送websocket通知用户端了? save异步了?

steven_lhcb_9527

2022-04-21 08:59

@杜福忠 先save后发消息的,但是实际上感觉是异步了

杜福忠

2022-04-21 11:40

@steven_lhcb_9527 别感觉啊,写代码最忌讳的就是感觉了。
打个断点看下是啥情况。
是不是save的时候,开启数据库事务了, 没有提交了。
打个DEBUG断点在数据库操作之后,websocket通知之前,然后再用数据库视图工具去数据库看一下,是不是能看见,等等之类的调试

steven_lhcb_9527

2022-04-21 13:34

debug的时候先是接口1先返回,接口2后返回。不打断点的时候,就不行了