0

我正在研究一些关于如何达到特定结果的技术。我不熟悉 OAuth 以及我将/应该使用的任何技术,所以请多多包涵。

我有一个想尝试的想法:我想做一个可以在各种移动设备上运行的跟踪应用程序。它会将您的位置发送到服务器,让您的朋友知道您在长途旅行中的位置(例如跨越一个国家)。我的想法是用户将允许他的一些(少数几个)朋友登录到网站或应用程序并查看他在哪里。另外,如果服务器检测到用户停了很久,或者做了一些奇怪的事情,服务器会通知这些朋友,然后他们可以打电话给他检查。(受到一位同事的启发,他独自驾车 9 小时穿越全国,以惊喜地拜访他的女朋友)。

此外,作为挑战的一部分,我只想使用 Azure、Web API、Service Bus 和 ACS 等 Microsoft 技术。我也只想使用默认的 ASP.NET 成员资格提供程序和东西——我不想编写大量自定义代码。该项目将成为使用他们为我的应用程序提供的扩展点的所有默认 Microsoft 代码。

我的想法还需要与其他提供商互动,例如 Facebook 和 Google。我想到了如何通过允许用户登录应用程序以在他的 Facebook 上创建一个帐户并为旅行设置来实现这一点。然后,他将使用同一个 Facebook 帐户从他的设备登录,然后该应用程序将使用 REST API 与我的服务进行交互。我不想负责跟踪用户名和密码(希望我可以使用默认的 ASP.NET 成员资格和角色)。

但是,我不知道我应该看什么。我假设如果用户每分钟左右发送一次他们的位置,我的 API 将会有大量的请求。我想为此使用队列,API 只会将所有位置转发到将由工作人员处理的队列。该 API 将提供一种发送位置以及创建和修改用户设置的方式。我不确定解决此问题的最佳方法。对我的 API 的大量请求会导致其他请求的性能下降吗?我是否应该有一个单独的服务器来处理位置,而另一个服务器用于基本的用户管理?

可以说我非常喜欢这个应用程序,我不希望收到的每个位置都向 Facebook 服务器发送数千个请求。OAuth在这里不起作用吗?我的应用程序是否可以缓存一个可以与用户通过 Web 界面登录时拥有的密钥一起使用的密钥?我希望系统能够在到达队列之前拒绝垃圾邮件请求,例如随机令牌或其他东西。OAuth 是这个应用程序的可行方法吗?

我不确定,因为这对我来说很新。如何创建使用第三方身份验证的大容量基于 REST 的应用程序?我希望对位置更新使用纯 HTTP(只是因为我确信它应该是可能的 - 也许有人可以评论更大开销的选项?),所以我不希望消息中的密码全部。我应该使用 REST 吗?

我知道这是一个很长很宽泛的问题,但我想学习并且愿意这样做,不惜一切代价。请花时间阅读并指出任何事情,无论好坏。

4

1 回答 1

1

根据您的应用程序设计,您可能对 SignalR (http://signalr.net/) 感兴趣。它非常适合订阅请求(一群朋友),然后向这些朋友广播任何更改(就像你说的那样奇怪)。

Microsoft 正在制作 ASP.NET 平台的一部分,因此它基于 Microsoft 技术:http ://channel9.msdn.com/Events/Build/2012/3-034

我认为是那个视频,或者他们提到的另一个视频(因为它的异步性质/首先使用 WebSockets)可以在笔记本电脑上扩展到每秒 20,000 条消息。这类东西的认证是次要的,先看你的核心技术。

于 2012-11-27T01:51:35.370 回答