1

我的 Android 应用程序的 webkit 容器中有一个 JavaScript 代码。此代码使用 WebSockets 与服务器通信。相同的 JS 代码适用于其他平台,例如 iOS,但在 Android 2.3 中则不行。我在某处读到 Android 中的 webkit 不支持 WebSockets,并且支持只会出现在 Jelly Bean 之后。

鉴于此,我需要使用普通套接字从本机层(在 Java 中)提供一个包装器。从我对套接字的了解来看,支持常用的 API 似乎很简单,例如 open()、send()、receive() 等。

我还需要知道 WebSocket 协议需要什么,我需要从包装代码中提供吗?毕竟,服务器与客户端(我的 android 应用程序)对话,就好像它是一个 WebSocket,而不是一个原生套接字。

需要考虑的一些注意事项:a)我不能使用任何第三方库 - 它必须在内部开发。b) 不会有任何二进制数据传输;只有文字。

谢谢,
拉贾特

4

1 回答 1

1

Websockets 不是原始套接字,它们需要初始握手,然后是简单的每个消息框架。有关详细信息,请参阅协议规范。关于握手数据框架的部分将是最相关的。

我知道您说过您不能使用第三方库,但请注意Java-Websocket之类的项目可能对您很感兴趣。它获得了自由许可,因此适合包含在任何封闭源代码应用程序中。或者您可能会发现它在调试您自己的代码时作为参考很有用。

于 2012-09-14T08:30:05.133 回答