使用 Websockets 在 Rails 应用程序中实现自动保存
Posted
技术标签:
【中文标题】使用 Websockets 在 Rails 应用程序中实现自动保存【英文标题】:Implementing autosave in a Rails app with Websockets 【发布时间】:2016-11-29 06:32:04 【问题描述】:我有一个简单的文本编辑器,并希望实现自动保存,以便任何时候对文本进行更改,它都会立即发送到服务器。
有两种方法可以做到这一点:
-
打开一个套接字连接并每秒通过套接字发送更改。
设置一个 750 毫秒的空闲键盘更改计时器,只要用户停止输入 750 毫秒,该计时器就会发送更改。
我知道当您不想轮询以检查服务器是否有新数据时,websockets 是合适的。但是当你想不断地向服务器发送数据时,它也适合吗?
Web 套接字上的 1 个请求/用户/秒通常比常规 http 连接上的 1 个请求/用户/秒的性能更高吗?
更新:
为了记录,我查看了 Google Docs,它似乎使用 post 请求而不是 websockets 进行自动保存:
它以大约 150 毫秒的键盘空闲计时器触发,并且只发送增量更改。
【问题讨论】:
【参考方案1】:WebSocket 完全适合向服务器永久发送少量数据。
有两个主要优点:
您无需在每次发送数据时都建立连接,这样可以加快速度(尽管这对您的应用程序来说可能并不那么重要)。
您可以节省消息大小,因为 HTTP 标头比 WebSocket 消息的标头大得多。
(有关更多信息,请参阅this thorough *** answer。
【讨论】:
以上是关于使用 Websockets 在 Rails 应用程序中实现自动保存的主要内容,如果未能解决你的问题,请参考以下文章
在开发环境中使用 SSL/TLS 的 Rails 和 WebSockets
Rails Heroku Cloudflare SSL 和 websockets
如何通过 websockets 在 ruby on rails 和 reactJS 之间发送数据
Websockets 与主要应用程序(nginx + 乘客 + faye)