hprose / hprose-golang

Hprose is a cross-language RPC. This project is Hprose for Golang.
MIT License
1.26k stars 205 forks source link

Server端接口回调 #34

Closed rudy-gao closed 2 years ago

rudy-gao commented 7 years ago

你好,最近看到你们的项目,我这边有一个需求是这样的,不知道能否满足? 假如我有一台client调用server端一个接口,server端处理完成step 1后,需要回调client端的一个接口,如果client端返回ok,则server端继续执行step 2,否则退出执行? 或者是这样: 假如我有一个clientManger,创建了3个client分发到3台server,每台server处理完step 1之后(各个server处理完成的时间不一致),需要回调client端的接口,询问clientManger其它server是否也处理完了step 1,如果所有的sever都处理完成step 1,则server继续执行step 2,否则等待其它server执行?

andot commented 7 years ago

我觉得你把server端的两步分成两个单独的RPC调用就可以简化你的问题了。

客户端调用第一步之后,根据返回结果来决定是否要进行第二步的调用,就解决了你的第一个问题。

第二个问题也是一样,客户端收到第一步的来自三台服务器的结果之后,再同时发起第二步调用就可以了。

vvhh2002 commented 6 years ago

这个是一个典型的Session 问题,若异步性太强,我觉得采用PUSH可以实现更好的异步回调模型