我有一个注册RPC函数的程序,例如。 com.myapp.foo 。然后我在几个独立设备上运行该程序,所有设备都连接到同一个路由器。
当我启动第二个设备时,它会出错,因为RPC函数已经注册(wamp.error.procedure_already_exists
)。
这是有道理的,因为路由器需要一个唯一的名称才能正确路由过程调用。但就我而言,
我的第一个想法是每个设备都应该生成一个唯一的过程名称( com.myapp.device4.foo )。
我在python / asyncio和javascript中工作,两者都使用了高速公路 crossbar.io服务器。
答案 0 :(得分:1)
生成唯一名称:
第一个变体的优点是过程URL是持久的,并且易于与设备相关联。
发现已注册的程序:
如果您的客户有权访问它,WAMP元API允许查询现有程序 - 请参阅http://crossbar.io/docs/Registration-Meta-Events-and-Procedures/
如果您的网址包含设备的MAC /设备序列号/其他唯一信息,那么您需要知道当前哪些设备已启动。