现在有个需求是两个手机实现通信, 有一台手机是 server ,有一台手机是 client 。这个时候 server 与 client 建立了一个 socket 连接,都有 socket 。
手机 A 有个 map<手机编号,socket> 手机 B 也有 map<手机编号,socket>, 这个时候可以通过 socket write 和 read.
假设双方不使用用 rpc 的方式调用,这里的假设,你非要做,那当我没说。 双方通过 http 接口的方式暴露, 因为要传文件,所以 rpc 并不适合,我也不想自定义协议去通信,太麻烦了。
比如 A 手机有个接口,叫做退出。 地址是 localhost:8080/exit_app, 这个时候 B 要想复用存在的 socket, 如何非常快捷的构造一个 http 请求通过 socket 的方式 write 给手机 A?
这里 B 手机其实并不能直接访问 localhost:8080/exit_app 这个接口, 不要问为什么,就是不能直接访问。只能通过建立的 socket 来通信,并且暂时不考虑 B 手机开启一个 serversocket 的方式,将流量通过 b 获取到的 socket 做转发。 问题就来了, 我要如何简单又快捷的通过 b 持有的 socket 去发送或者说构造一个 http 请求呢?
1
documentzhangx66 2023-02-12 02:45:58 +08:00
grpc + protocol buffer 了解一下。
|
2
jeesk OP 该问题已经解决。 刚才翻了一下 okhttp 和 HttpUrlconnetion 的源码,基本上都可以使用自定义的 socketFactoy 实现自定义的 socket 处理。
|
3
jeesk OP @documentzhangx66 哈哈, grpc 就是 rpc 了,我不想要太多第三方的东西,过于复杂,而且出了问题难以调试。
|