当前位置: 首页 > 面试题库 >

Websocket API取代REST API?

马臻
2023-03-14
问题内容

我有一个应用程序,其主要功能通过websocket或长时间轮询实时运行。

但是,大多数站点都是以RESTful方式编写的,这对将来的应用程序和其他客户端非常有用。但是,我正在考虑从REST过渡到用于所有站点功能的websocket
API。这将使我更容易将实时功能集成到网站的所有部分。这会增加构建应用程序或移动客户端的难度吗?

我发现有些人已经在做这样的事情:SocketStream


问题答案:

并不是说这里的其他答案没有道理,它们提出了一些优点。但是,我将违背普遍的共识,并同意您的看法,将Websockets不仅用于实时功能是非常吸引人的。

我正在认真考虑通过websocket将我的应用程序从RESTful架构迁移到更多的RPC样式。这不是一个“玩具应用程序”,我不是在谈论实时功能,所以我确实有保留。但是,我认为走这条路有很多好处,并认为这可能是一个出色的解决方案。

我的计划是使用DNode,SocketIO和Backbone。使用这些工具,只需调用RPC样式的函数,即可在客户端和服务器之间来回传递我的Backbone模型和集合。不再需要管理REST端点,序列化/反序列化对象等等。我尚未使用socketstream,但值得一试。

在我可以肯定地说这是一个很好的解决方案之前,我还有很长的路要走,我敢肯定这不是每个应用程序的最佳解决方案,但是我坚信这种组合将异常强大。我承认存在一些缺点,例如失去缓存资源的能力。但是我感觉优势将胜过它们。

我有兴趣关注您在探索这种解决方案方面的进展。如果您有任何github实验,请指向我。我还没有,但希望很快。

以下是我一直在收集的待读链接的列表。我不能保证它们都是值得的,因为我只浏览了其中许多。但希望能有所帮助。

关于将Socket.IO与Express结合使用的出色教程。它向socket.io公开了快速会话,并讨论了如何为每个经过身份验证的用户提供不同的房间。

  • http://www.danielbaulig.de/socket-ioexpress/

关于具有身份验证,Joyent托管等的node.js / socket.io / backbone.js / express / connect /
jade / redis教程:

  • http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/
  • http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/

关于将Pusher与Backbone.js结合使用的教程(使用Rails):

  • http://blog.pusher.com/2011/6/21/backbone-js-now-realtime-with-pusher

使用客户端上的ribs.js和服务器上的express,socket.io,dnode的node.js构建应用程序

  • http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/
  • http://addyosmani.com/blog/building-spas-jquerys-best-friends/
  • http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/
  • http://fzysqr.com/2011/03/27/nodechat-js-continued-authentication-profiles-ponies-and-a-meaner-socket-io/

在DNode中使用Backbone:

  • http://quickleft.com/blog/backbone-without-ajax-part-ii
  • http://quickleft.com/blog/backbone-without-ajax-part-1
  • http://sorensen.posterous.com/introducing-backbone-redis
  • https://github.com/cowboyrushforth/minespotter
  • http://amir.unoc.net/how-to-share-backbonejs-models-with-nodejs
  • http://hackerne.ws/item?id=2222935
  • http://substack.net/posts/24ab8c


 类似资料:
  • 我们采用GitLab作为项目代码释放平台,所有仓库源码及更新获取都需通过GitLab同步。 gitlab代码入口为:https://gitlab.com/nationalchip/vsp_sdk 一、注册GitLab账号 GitLab登录链接 GitLab账号注册可能需要翻墙,所以不能打开注册链接的,我们建议通过GitHab账号登录。 GitHub注册链接 没有GitHub账号的话,先通过下面链接

  • 参考快速上手指南的代码获取章节: gitlab代码获取章节

  • 有两种途径获取: 代码托管到阿里云[https://code.aliyun.com/]上,需要去注册一个账号,把账号告知我们的FAE,我们给你释放 pull code 的权限。

  • 鉴于pandas 0.20.0的更新和的废弃,我想知道使用剩下的和获得相同结果的最有效方法是什么。我刚刚回答了这个问题,但是第二个选项(不使用)似乎效率低且冗长。 片段: 当同时使用条件和索引位置筛选时,这是正确的方法吗?

  • 3.4. 获取代码 以下命令会创建一个go目录。切换到相应目录,并且确保当前位置不存在go目录,运行命令: $ hg clone -r release https://go.googlecode.com/hg/ go

  • 使用阿里云帐号登录https://code.aliyun.com,进入左侧栏Profile 设置Name,Username,Email(需验证),点击页面下方的SAVE CHANGES保存 注意:Name 与 Username后缀须标明公司或组织的英文名称,形如 yourName-yourCO. 进入左侧栏sshKeys,点击右上方ADD SSH KEY,添加本地 id_rsa.pub 内容并保存

  • 我们采用GitLab作为项目代码释放平台,所有仓库源码及更新获取都需通过GitLab同步。 gitlab代码入口为:https://gitlab.com/nationalchip/skylarkos-getstarted 一、注册GitLab账号 GitLab登录链接 GitLab账号注册可能需要翻墙,所以不能打开注册链接的,我们建议通过GitHab账号登录。 GitHub注册链接 没有GitHu

  • 本文向大家介绍node.js 抓取代理ip实例代码,包括了node.js 抓取代理ip实例代码的使用技巧和注意事项,需要的朋友参考一下 node.js实现抓取代理ip 主要文件:index.js 包支持 : package.json 本地需要安装mongodb数据库,用于存储抓取到的ip,目前还未实现ip验证。写这个主要是处于好奇。 上面的代码就可以实现抓取ip代理网站的ip并存到mongodb数