我有一个应用程序,其主要功能通过WebSocket或长轮询实时工作.

然而,该网站的大部分内容都是以RESTful的方式编写的,这对应用程序和其他客户机来说是很好的.然而,我正在考虑将所有站点函数从REST转换为websocket API.这将使我更容易将实时功能集成到网站的所有部分.这会使构建应用程序或移动客户端变得更加困难吗?

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

推荐答案

不是说这里的其他答案没有价值,它们提出了一些好的观点.但我要反对大家的普遍共识,同意大家的看法,即转向websockets不仅仅是为了实时功能,这是非常有吸引力的.

我正在认真考虑通过websockets将我的应用程序从RESTful架构转移到更多RPC风格.这不是一个"玩具应用程序",我也不是说只有实时功能,所以我有预约.但我认为走这条路有很多好处,并认为这可能是一个例外的解决方案.

我的计划是使用DNodeSocketIOBackbone.有了这些工具,我的主干模型和集合可以通过调用RPC风格的函数在客户机和服务器之间传递.不再需要管理REST端点、序列化/反序列化对象等等.我还没有使用socketstream,但它看起来值得一看.

在我可以肯定地说这是一个好的解决方案之前,我还有很长的路要走,而且我确信这不是适用于所有应用程序的最佳解决方案,但我相信这种组合将非常强大.我承认有一些缺点,比如失go 缓存资源的能力.但我有一种感觉,这种优势将超过它们.

我有兴趣关注你们探索这种解决方案的进展.如果你有任何github实验,请告诉我.我还没有,但希望很快能有.

下面是我一直收集的待阅读链接列表.我不能保证它们都是值得的,因为我只浏览了其中的很多.但希望有人能帮上忙.


关于使用套接字的很棒的教程.我是特快专递的.它向套接字公开express会话.io并讨论如何 for each 经过身份验证的用户设置不同的房间.

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

关于使用带主干的推进器的教程.js(使用Rails):

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

使用带DNode的主干:

Node.js相关问答推荐

使用NodeJS在S3上传文件时的格式问题

MongoDB:更新批量操作中许多不能正常工作的内容

如果非SQL函数在事务内部运行失败,PG-Promise事务会回滚吗?

购物车是空的状态|本地存储不更新产品数量|Redux|

为什么 mongoose 没有常规数组方法

将 null 推入管道后,node.js 可写完成未发出

我应该如何解决这个 Angular node 包模块依赖冲突?

等待不在 Express.js 中处理 res.app.render

在 nodejs 中使用 multer 上传文件返回未定义的 req.file 和空的 req.body

在 Atlas 触发器(Node JS)中正确初始化 Firebase 管理 SDK

MERN 堆栈项目中的 React [create-react-app] 正在提供依赖项

配额超出了每分钟的 Sheets API 写入请求数. node .js

Socket IOFlutter 未连接

如何获取在 NodeJS 中执行的脚本的文件名?

来自 Node-aws 的 Dynamo Local:所有操作都失败无法对不存在的表执行操作

使 pm2 登录到控制台

nodeJS - 如何使用 express 创建和读取会话

Node.js 与 .net 中的异步/等待

在 Node.js 中获取终端的宽度

nodemon + express,监听端口=?