连接桌面和移动客户端到Django和Sails MVC Web框架

4

我想使用sails.js来构建一个MVC Web应用程序。
我还想拥有一个移动应用程序桌面客户端连接我的Web应用程序。为了连接移动客户端,我想使用socket.io,因为它可以给予实时能力。 如何将客户端连接到服务器?

我试图从Android客户端通过一个sails应用程序中的一个route建立socket连接,但是遇到了错误,提示该连接没有cookie。

我记得过去当我想将我的桌面客户端连接到我的Django应用程序时,我遇到了错误,说没有CSRF时无法进行POST。

所以我的问题是什么是正确的方法? 我应该向我的移动应用程序发送cookie吗?我认为cookie并不是一个干净的方法。

我应该使用什么协议?Telegram使用MTProto。我应该实现类似的东西吗?

在MVC Web框架中,我应该在哪里监听处理来自移动桌面客户端的连接?

对于我的应用程序,想象一下一个在线商店,它还具有社交网络功能,用户可以从手机客户端对商店商品发表评论。

1个回答

1
首先,MTProto是一种加密协议,所以我不确定您是否真的需要实现这样的东西。
如果服务器应用程序实现REST服务,则我认为Cookie是多余的。Django POST表单处理程序默认情况下等待csrf,但可以禁用或使用额外的post参数来实现。
据我所知,您正在尝试为您的服务实现API。移动应用通常使用API(通常是REST API)。我认为阅读一些关于REST API的文章会对您有所帮助(您可以从这里开始:http://www.restapitutorial.com/lessons/whatisrest.html)。
接下来,您可以搜索有关使用您的框架实现REST API的文章(也许这个答案会对您有所帮助http://www.restapitutorial.com/lessons/whatisrest.html)。
简短而简单的解释:您需要一组服务器方法,这些方法将是API方法。例如,对于/users url的GET方法应返回用户列表。POST到/users应创建新用户。等等。您的应用程序只需向这些url发送或接收数据的请求。您可以通过加密和解密所有传输数据来进行密码学。但是,您可以使用已经存在的协议之一,无需实现自己的发明协议。

实时部分怎么样?我需要Web套接字连接,同时我希望服务器通知客户端有关更新的信息,而不是像REST中发生的长轮询。 - pjsofts
我认为对于更新,您可以使用推送通知。有很多服务可供选择。您可以在此处阅读更多信息:https://developers.google.com/cloud-messaging/ 关于WebSockets,您可以阅读这篇文章:https://dev59.com/6FvUa4cB1Zd3GeqPslc9 - Paul
Sails有WebSocket推送器吗?如果我使用简单的REST和第三方推送器,那么我将绕过Sails承诺的所有实时功能。 - pjsofts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接