【问题标题】: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.jssocket.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
相关资源
最近更新 更多