【问题标题】:Database with websocket interface?带有websocket接口的数据库?
【发布时间】:2012-06-21 22:55:13
【问题描述】:

CouchDB 有一个 http 接口,可以从服务器和客户端访问它。 websocket接口是否存在类似的东西?

提前感谢您提供任何信息!

【问题讨论】:

  • 我建议您根据它的优点来选择您的数据库,而不是根据它用于客户端的连接类型。使用 Node.js 或类似工具构建这样的接口很容易。我不知道你为什么想要。
  • 我向你保证,连接不会成为瓶颈
  • 我从来没有说过我是根据这个来选择数据库的。我问它是否存在于任何地方。
  • mongodb 有一个只读的 REST 接口
  • 我认为,如果它确实存在,它将成为特定于特定语言驱动程序的第 3 方库。客户端 javascript 方面足够不可知,但它必须与服务器端进程通信,然后与您的数据库交互

标签: javascript node.js mongodb couchdb socket.io


【解决方案1】:

一般来说,您不希望通过公共接口直接公开您的数据库服务器,因此在提供身份验证和 websocket 等服务之间会有一个服务器应用程序。通常这将是类似 node.js 或 Tornado .. 但由于您根据您的问题标签知道这一点,您正在寻找的实际解决方案是什么?

CouchDB 目前不直接支持 websocket 接口,但下一个版本 (1.3) 显然包括对 Server Sent Events protocol 的支持,除了 IE 之外,它得到了广泛支持(请参阅:browser compatibility)。

【讨论】:

  • +1 用于提及服务器端事件,但我不同意不能公开数据库,实际上有理由公开数据库,当涉及到一个功能齐全的 HTTP REST DB 服务器,例如 CouchDB;考虑stackoverflow.com/a/9507124/247623
【解决方案2】:

看起来 CouchDB 支持 _changes 的 EventSource 提要类型

https://issues.apache.org/jira/plugins/servlet/mobile#issue/COUCHDB-986

说明

我将为 _changes API 实现 EventSource 协议提要 (feed="eventsource")。

关于它的一些信息: http://dev.w3.org/html5/eventsource/ 比websocket好用, 因为它是只读的。

另外:考虑https://github.com/nolanlawson/socket-pouch

SocketPouch 一个代理所有 PouchDB API 的自定义 PouchDB 适配器 在 Node.js 中调用另一个在服务器上运行的 PouchDB。这 通信机制是Engine.io,著名的Socket.io核心。

这意味着 SocketPouch 不是通过 HTTP 同步,而是通过 网络套接字。感谢Engine.io,它回退到XHR轮询 不支持 WebSockets 的浏览器。

PouchDB 是 JavaScript 中 CouchDB 的一个端口,旨在在浏览器中运行(用于在浏览器中运行 CouchDB 数据库)或/和 Node.js(作为 CouchDB 的轻量级替代品或补充品)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    相关资源
    最近更新 更多