我有一个应用程序,其主要功能通过 websockets 或长轮询实时工作。
然而,大部分网站都是以 RESTful 方式编写的,这对 future 的应用程序和其他客户端来说非常有用。但是,我正在考虑为所有站点功能转换到 websocket API,而不是 REST。这将使我更容易将实时功能集成到网站的所有部分。这会使构建应用程序或移动客户端变得更加困难吗?
我发现有些人已经在做这样的事情了:SocketStream
最佳答案
并不是说这里的其他答案没有优点,它们提出了一些好处。但是我将违背普遍的共识并同意你的观点,即转向 websockets 不仅仅是为了实时功能是非常有吸引力的。
我正在认真考虑通过 websockets 将我的应用程序从 RESTful 架构迁移到更多的 RPC 样式。这不是一个“玩具应用”,我说的不仅仅是实时功能,所以我有保留。但我看到走这条路有很多好处,并觉得它可能会成为一个特殊的解决方案。
我的计划是使用 DNode , SocketIO , 和 Backbone .使用这些工具,我的 Backbone 模型和集合可以通过简单地调用 RPC 样式的函数在客户端和服务器之间传递。不再需要管理 REST 端点、序列化/反序列化对象等等。我还没有使用过 socketstream,但它看起来值得一试。
我还有很长的路要走,才能明确地说这是一个很好的解决方案,而且我确信它不是每个应用程序的最佳解决方案,但我相信这种组合会非常强大.我承认有一些缺点,比如失去缓存资源的能力。但我有一种感觉,优势将超过它们。
我有兴趣关注您探索此类解决方案的进展。如果你有任何 github 实验,请指点我。我还没有,但希望很快。
下面是我一直在收集的待读链接列表。我不能保证它们都是值得的,因为我只浏览了其中的许多。但希望有些人会有所帮助。
关于在 Express 中使用 Socket.IO 的精彩教程。它向 socket.io 公开了 express session ,并讨论了如何为每个经过身份验证的用户提供不同的房间。
关于 node.js/socket.io/backbone.js/express/connect/jade/redis 的教程,包括身份验证、Joyent 托管等:
- 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/
在 Backbone.js 中使用 Pusher 的教程(使用 Rails):
在客户端使用backbone.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
关于javascript - Websocket API 取代 REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806263/