我正在制作一个MVC Web应用程序,用作两个“世界”之间的接口。
我正在使用此签名“ GetStatus(string id)”公开服务(如肥皂)
问题是我没有即时状态或数据库状态,在回答之前,我需要向具有规则的“其他世界”询问它。
与“其他世界”的通信是通过WebSocket进行的,我必须:
1)通过套接字发送一条消息,询问“其他世界”的状态
2)阅读确认答复消息(如果“其他世界”负责的话)
3)等待状态为“其他世界”的消息
如何在肥皂服务中实现它?!
我的问题是如何“暂停”肥皂请求任务(有超时限制),
并且在通过WebSocket接收状态之后(在不同线程上),
接送/唤醒soapRequest任务,将状态传递给它,最后回答客户请求
我对TaskCompletionSource,BlockingCollection,Rx,异步编程模型(APM)模式,基于事件的异步模式(EAP)等东西有点困惑和陌生。 我在考虑观察者模式,但是我不知道实现它的最佳库/方法/实践