Android在websocket协议中如何支持JSON-RPC隧道?你有这方面的经验吗?
谢谢! !
这是"支持"的一个非常具体的东西。Websockets只是在HTTP上实现的双向通信协议(请求的HTTP部分进行"升级"以允许TCP套接字被重用,与HTTPS的方式大致相同)。
如何?
选择任何你觉得舒服的Android Websockets实现。也许是高速公路?
为了"隧道"JSON-RPC,例如,你可以在android-json-rpc中子类化jsonrpccclient类(重写doJSONRequest
方法的方式与JSONRPCHttpClient相同),将你的实现命名为JSONRPCWebsocketsClient
(使用你选择的任何Websockets实现)。
为什么?
一个更重要的问题是为什么你需要在Websockets上隧道JSON-RPC ?
- 您打算使用(不对称的,服务器到客户端)来自旧的JSON-RPC提案的"通知"消息?(我将)
- 你是否一直在谈论一些非常具体的服务器端实现? 这只是为了通过一些愚蠢的公司防火墙吗?
如果它只是用于"通知"消息,那么为什么不通过计划TCP(更轻量级)而不是Websockets(更复杂)来实现呢?
如果它要与某些特定的服务器实现一起工作,您的选择是"与它一起生活"或在您的客户端和服务器之间放置某种代理服务器。
如果要使用HTTP绕过公司防火墙(可能需要结合服务器到客户端的"通知"消息),那么这可能是一个"好"的解决方案,一个更简单的解决方案可能是实际上从该公司内部的ITS获得支持,以公开一个安全的,众所周知的端点,而不受任何限制。