【问题标题】:java websocket api and old browsers [closed]java websocket api和旧浏览器[关闭]
【发布时间】:2014-06-24 07:21:43
【问题描述】:

Java 引入了Java API for WebSocket 来实现WebSocket,但是所有浏览器都不能正确支持WebSockets。

有些浏览器根本不支持,其他浏览器的支持可能不兼容(不标准或不完整)。

  1. 那么为什么要使用 Java API for WebSocket?为什么首先引入它?
  2. 如何处理浏览器不兼容和对WebSockets支持低的问题?
  3. 我们是否应该为 WebSocket 使用 Java API 并对浏览器端不支持 WebSockets 的浏览器进行短轮询?
  4. node.js 和 socket.io(它提供了许多额外的功能,如重新连接等)不是 Java API 的明显选择吗对于 WebSocket?

【问题讨论】:

  • 是的,node.js 很棒,而 Java 完全没用。为什么有人会使用 Java 做任何事情?这个问题似乎表明了对 API 是什么以及它的用途(而不是用途)的根本误解。
  • 解释你的讽刺评论:)

标签: java websocket java-websocket


【解决方案1】:

WebSockets 已被创建以启用服务器到客户端的通信,在此之前这是不可能的(或不切实际的)。

为了简化转换(对于浏览器和服务器),存在诸如 Atmosphere 之类的框架。

他们使用一种称为“优雅降级”的技术。这意味着它会尽力做到最好(WebSockets),但如果它不可用,它将落入“旧”技术,例如Comet。

这样您就可以使用仍然与旧浏览器兼容的 WebSockets(这很好)来设计您的应用程序。

【讨论】:

  • 所以 java websockets api 不会一直工作。这就是 socket.io 和 node.js 存在的原因。 (处理所有优雅的退化)。我的第 3 点似乎有效?
  • @MasoodAhmad,您的第 3 点是有效的,因为服务器必须实现多重传输(WebSocket + 长池 + 其他一些 commet 传输技术)。使用诸如 Atmosphere 之类的框架的优势在于它可以简化这种多重实现。有一些examples 说明了这一点。具体来说,您不必自己实现所有(WebSockets,Long Pooling,...)。
  • 还有一件事(第 4 点),没有明显的选择,您可以使用完整的 Java 或完整的 js(或两者兼有)。选择对你来说似乎更好的东西。试试看结果。
  • 如果我们必须处理 node.js 已经处理 socket.io 的事情,为什么还要使用 java socket api 呢?
  • 更多的是在 Java(用于 WabSocket 和 Atmosphere 的 Java API)或 JavaScript(Node.js 和 Socket.IO)之间选择您更喜欢的问题。两者都能够以优雅的降级处理 WebSocket。这个问题我没有绝对的答案。最好的办法是尝试看看你觉得什么更合适。
猜你喜欢
  • 1970-01-01
  • 2016-07-22
  • 2012-07-30
  • 2014-09-04
  • 1970-01-01
  • 2015-01-07
  • 2018-11-26
  • 1970-01-01
  • 2014-10-08
相关资源
最近更新 更多