是否有将 WebSocket 请求转换为服务器上的 HTTP 请求的标准?

Posted

技术标签:

【中文标题】是否有将 WebSocket 请求转换为服务器上的 HTTP 请求的标准?【英文标题】:Is there a standard for converting a WebSocket request into an HTTP request on the server? 【发布时间】:2013-09-27 17:45:18 【问题描述】:

我对 WebSockets 很陌生,这可能完全是疯了。如果是这样,请让我知道我应该做什么。

我的想法是我想在浏览器中建立一个最终与数据库交互的 WebSocket 连接。因为数据库不应该暴露给浏览器,所以当然,中间会有一个服务器层接收 WebSocket 消息,然后将其转换为 POST 或 DELETE 请求之类的东西。然后服务器将该消息传递给数据库。

所以问题是:是否有某种标准可以将 WebSocket 消息转换为 HTTP 请求?

我发现一篇博客文章中,该人确保他来自浏览器的 WebSocket 消息以 "method":"POST","content":"foo" 的形式出现,因此可以通过普通的 JSON 解析来理解它们。这样的事情可以吗,还是有更可接受的“正确方法”。

【问题讨论】:

既然你必须使用 HTTP 来启动一个 websocket 连接(称为 HTTP 升级请求),为什么不直接使用 HTTP 呢? 好问题。这是因为我在前端有一个非常酷的功能反应式系统,我更愿意在服务器推送更新时实时查看更新,而不是必须增量轮询新数据。 【参考方案1】:

这样的事情不仅没问题,而且是唯一的方法。您需要一个协议才能在服务器和客户端之间进行通信(否则服务器/客户端将如何理解您想要从中得到什么?)。无论您选择什么都可以(您甚至可以在 WebSockets 上使用标准 HTTP)。创建您自己的协议(就像您提出的示例一样)也非常好。我更喜欢基于 JSON 的协议,因为它易于使用(JSON 解析器是内置的,或者在大多数已知语言中很容易获得)

【讨论】:

好的,太棒了。我只是不知道是否已经建立了正确的协议。谢谢!

以上是关于是否有将 WebSocket 请求转换为服务器上的 HTTP 请求的标准?的主要内容,如果未能解决你的问题,请参考以下文章

是否有将日期转换为年龄的 SQL 查询

是否有将 tensorflow NN 转换为 Jax 的模块?

是否有将 HTML 转换为纯文本的功能?

是否有将 py 文件转换为 apk 的模块?

是否有将字符串转换为小写的 MySQL 命令?

是否有将 Java POJO 转换为 JSON 和 XML 的库? [关闭]