【问题标题】:Porting java sockets client to HTML5 socket.io将 java 套接字客户端移植到 HTML5 socket.io
【发布时间】:2014-01-19 03:01:35
【问题描述】:

我有一个使用 Java 套接字的多人游戏,服务器是标准 Java 应用程序,客户端是运行在网络浏览器中的 Java 小程序。

现在自从上次 Java 的更新(Java 7 更新 51)以来,所有的小程序都需要代码签名,所以我想从小程序转移到 HTML5 中重写客户端。

我一直在研究 socket.io,它看起来很简单,但我找不到任何关于如何在我的服务器中实现它的信息。

我想将服务器保留在 Java 中,因为移植它需要做很多工作,所以我可以在我的服务器上使用任何库来使 java 套接字服务器和套接字之间的通信成为可能.io 客户端,或者最好的方法是什么?我真的需要移植整个服务器吗?

谢谢。

【问题讨论】:

  • 一个socket就是一个socket;您根本不必更改服务器。 (除非您在 applet 和服务器之间使用 Java 对象序列化,在这种情况下,您将不得不在服务器端重构您的网络代码而不是这样做,并使用更合适的东西,例如 JSON)。
  • 你是对的,一个套接字是一个套接字,但是 socket.io 不能使用 java ServerSocket 开箱即用,你必须实现握手,因为 socket.io 可以制作多种类型的连接,你需要处理所有这些,这就是为什么我正在寻找一些可以帮助我的库,因为我找不到任何关于如何在 java 中创建自己的握手处理程序的信息。
  • Java 中的ServerSocket 绝对没有什么特别之处。它与系统上的底层原生 C 库对话,并创建与任何其他语言的任何其他套接字完全相同的 TCP 套接字。 telnet 连接当然没有问题,您的网络浏览器也没有问题。

标签: java html sockets applet socket.io


【解决方案1】:

socket.io 工作的 html5 WebSocket 不等于“普通”C 或 Java 套接字。它通过 TCP 实现自己的协议,包括握手和其他内容。要移植您的服务器,您必须使用一个库,也许 this 可以帮助您。

有关 WebSocket 协议的更多信息,请参阅here

【讨论】:

  • 谢谢,这帮助我了解了 Websockets 的工作原理,我找到了一些库 Java-WebSocket 用于纯 Websockets 和 netty-socketio 与 socket.io 一起使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
相关资源
最近更新 更多