2014-03-05 88 views
0

我有一个客户端应用程序(WP8)和一个Web API。该应用程序可以通过Web API将消息发送给其他用户(通常是一个其他用户,有时是一些用户)。这是通过一个简单的“AppMessage”类来完成的,该类通过发布到Web API保存。使用Web API推送服务器

我想使这个更快的过程。目前,用户只有在登录(通过Web API进行身份验证)时才会收到消息通知,或者当他们单击应用程序中的刷新按钮时 - 客户端会转到此处并检查更多消息。

SignalR似乎适合在这里。当连接客户端未连接时发送给他们的消息是否可以通知连接客户端?我需要将SignalR连接映射到数据库中的用户记录,并检索发送给它们的已保存消息。

我理解它用于实时通信,但不是它如何处理保存连接时发送给客户端的消息(或信号)。

感谢您对此的任何方向!

+1

我认为更适合可能是Azure通知中心:http://www.windowsazure.com/en-us/services/notification-hubs/ –

+0

这看起来像我正在寻找的!谢谢 – creatiive

回答

1

例如,如果消息存储在数据库中,则可以在客户端连接时检查它们(请参阅OnConnected方法)并将它们发送给客户端。

SignalR本身并没有为脱机用户或连接实现存储,所以你需要自己实现。 基本上你需要检查用户是否在线,然后直接发送消息或将它存储在某个地方。您可以让客户发送收据以确保您的邮件实际上已被显示。 检查this了解如何将用户与SignalR连接相关联。

也就是说,如果您使用的是Azure,我还建议仔细查看Brendan的建议。