java - 使用 java 8 的 google appengine 的 Websocket 或 native 套接字?

标签 java sockets google-app-engine websocket google-cloud-platform

我目前在 Google AppEngine 上使用 HTTP 长轮询作为基于 java 8 的 web 应用程序(标准环境)的用户消息传递和通知系统。我想用 Socket API 来实现这个。

关于Google's documentation关于它提到的 Java Sockets API:

Important: Applications in the Java 8 runtime can use native Java sockets with no restrictions, including the use of NIO classes and their methods.

所以我有点困惑我到底应该使用什么,websockets 还是 native java 套接字?有区别吧?显然,Java 8 运行时极大地改变了套接字 api,这就是为什么可以使用 native java 套接字而不是 websockets 的原因吗?

最佳答案

Java 7 运行时,which is now deprecated ,是一个特殊的沙盒环境。因此,它在 JVM 上可以执行的操作方面有很多限制,例如,关于线程、标准 Java 库中的可用类、套接字、安全管理器等。

Java 8 运行时具有截然不同的基础架构,并且大多数限制已被取消。它支持标准公共(public) Java 库(当然包括 native Java 套接字和 NIO),而不仅仅是 Java 7 运行时中的白名单子(monad)集。您链接的文档中的引用只是宣传 Java 8 运行时相对于 Java 7 运行时的优越性。

我想说,是否使用 native Java 套接字由您决定。至少使用标准 Java 库不会是一件坏事。

编辑:您可能也对这些附加文档感兴趣:

关于java - 使用 java 8 的 google appengine 的 Websocket 或 native 套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50415605/

相关文章:

java - 将 Observable 与第二个 Observable 结合使用第一个 Observable 的结果

java - 找到兼容的 socket

java - 洗牌阵列

c++ - 如何检测端口是否已在服务器端使用(在 Windows 上的 C++ 中)?

java,为什么DataInputStream在空格时分割字符串

javascript - Firestore 导出 Cron 作业未运行 : Error Code 204

java - 从java应用程序连接到谷歌数据存储

jquery - 在 Python 中抛出异常并在 jQuery 中读取消息

java - 我试图用这种方法正确打印温度,但我卡住了

java - fragment View 上 AsyncTask 中的 setContentView() 问题