任意两台内网设备间的 RPC 通讯用什么技术方案?

2015-10-15 00:58:09 +08:00
 qw7692336

早上发了帖:
http://www.v2ex.com/t/227726
问的是实时通讯的解决方案,推送的那块,用发布 /订阅模式。

现在想要一种请求 /响应的模式,作手机远程操作嵌入式设备。
手机跟嵌入式设备都在内网,都有会唯一的 ID 。

3163 次点击
所在节点    问与答
22 条回复
qw7692336
2015-10-15 00:58:23 +08:00
halfcrazy
2015-10-15 01:02:31 +08:00
http
thrift
protobuf
qw7692336
2015-10-15 01:30:46 +08:00
@halfcrazy
没有外网地址,不可能 HTTP
halfcrazy
2015-10-15 01:46:46 +08:00
@qw7692336 不是任意两台内网设备间么?不需要外网 ip 啊
qw7692336
2015-10-15 01:52:38 +08:00
@halfcrazy
通过服务器来管理设备
qw7692336
2015-10-15 01:53:11 +08:00
@halfcrazy
没有外网地址怎么用 HTTP
qw7692336
2015-10-15 01:53:37 +08:00
@halfcrazy
不同的两个内网
qinix
2015-10-15 04:39:19 +08:00
如果 http 不行,那么应该可以推知没有协议可以做到

并不能懂 http 跟有没有外网地址有什么关系
ryd994
2015-10-15 05:24:09 +08:00
两个都是内网,要么外网服务器转发,要么外网服务器协助打洞。没有外网机器就完全没戏。
ljbha007
2015-10-15 07:28:16 +08:00
STUN/TURN/ICE 协议是专门 用来给两台 nat 后的设备建立连接打洞用的
通信协议 一般的 RPC 协议都可以 xml-rpc/json-rpc
甚至自己用“发布 /订阅”模式的消息队列服务器来实现都可以 用消息队列的好处是 连打洞都可以省了 直接通过服务器来通信
shangjiyu
2015-10-15 07:53:59 +08:00
N2N?
line
2015-10-15 07:54:31 +08:00
RPC 好像只能 client 调用 Server 单向的。双向无解。
qw7692336
2015-10-15 09:30:07 +08:00
@ryd994
可以转发,可以打洞。关键是有没有现成的这种协议,对已有的设备进行管理,给每个设备分配一个 ID 号,方便设备之间的通讯,就如 VOIP 打电话协议,发 email 协议一样,都是 client to client 的,只不过我想要请求 /响应的方式而已。

@ljbha007 发布 /订阅是单项的,我需要主动发起请求,向对方获取数据。
@line
line
2015-10-15 09:38:44 +08:00
@qw7692336 就是要双向 RPC 吧,好像没有好方法
qw7692336
2015-10-15 09:45:11 +08:00
@line
我有一个服务端,连接这不同的客户端,而各个客户端之间,通过服务端的帮助来互相通讯,用请求 /响应的方式通讯
line
2015-10-15 10:10:27 +08:00
@qw7692336 IM ?
qw7692336
2015-10-15 10:12:30 +08:00
@line
IM 也不是请求 /响应的
line
2015-10-15 11:24:52 +08:00
@qw7692336 clients 间能交换数据不就可以做成 请求 响应 了吗?
mulog
2015-10-15 11:33:51 +08:00
我有一个服务端,连接这不同的客户端,而各个客户端之间,通过服务端的帮助来互相通讯,用请求 /响应的方式通讯

这不就是 IM 吗。。。
没懂 「 IM 也不是请求 /响应的」是什么意思
qw7692336
2015-10-15 12:15:28 +08:00
@mulog
像 HTTP 那样,客户端 A 向客户端 B 发送请求,发送完毕后, A 会一直等待 B 响应数据,直到 B 把数据返回完毕。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX