【发布时间】:2014-02-21 02:58:12
【问题描述】:
我有一个服务应用程序,其工作方式与 SignalR 背板非常相似,因此我认为创建自己的 IMessageBus 实现来与后端通信是个好主意,而不是推出我自己的东西。问题是我找不到关于这份合同的太多信息。虽然我一直在看代码(看起来很不错),但我很难理解一些概念。
public interface IMessageBus
{
Task Publish(Message message);
IDisposable Subscribe(ISubscriber subscriber, string cursor, Func<MessageResult, object, Task<bool>> callback, int maxMessages, object state);
}
Task Publish(Message message);
这个很简单,基本上它必须向后端发送消息。我不担心这个,因为我的应用程序从服务器到客户端是单向的。
-
IDisposable Subscribe(ISubscriber subscriber, string cursor, Func<MessageResult, object, Task<bool>> callback, int maxMessages, object state);-
return:尽管说IDisposable,但我看到它总是返回一个订阅对象,但是为什么IDisposable? -
subscriber标识一个连接。该连接可以订阅或取消订阅群组。 -
cursor: 是最后收到的消息 ID。 -
callback:这个回调什么时候执行? -
state:这到底是什么?
-
有人可以解释一下这个方法是如何工作的吗?
【问题讨论】: