关于dtu设备返回指令,gateway如何获取用户端uid,发送该指令给用户端的问题

workerstar

1,用户(13969)在手机上点击按钮发送{"type":"user","uid":"1234","command":"02 03 05 d5 aa 52 d5"}给服务器,
2,通过服务器再把指令(02 03 05 d5 aa 52 d5)发送给dtu设备(2002),
3,dtu设备向服务器返回一个指令(02 03 05 d5 aa 52 d6),
4,服务器收到指令后,我想通过sendtouid()发送给用户,告知用户设备正常可以使用。
5,可是dtu设备向服务器返回的就一个指令(02 03 05 d5 aa 52 d6),我能获取到的就是dtu设备的uid、client_id,用户的uid我没法获取。这个怎么处理?

阅读 586
2个回答

blogdaren

用户发送的包{"type":"user","uid":"1234","command":"02 03 05 d5 aa 52 d5"}里不就有用户uid吗? 从onMessage($connection, $data)回调里解包$data就可以了啊。

  • workerstar 2020-08-11

    感谢百忙之中回复。只是dtu设备向服务器返回的就一个指令(02 03 05 d5 aa 52 d6),我能获取到的就是dtu设备的uid、client_id,用户的uid我没法获取。如果设备可自定义我是可以获取的。

  • workerstar 2020-08-11

    onMessage($connection, $data){
    $data="02 03 05 d5 aa 52 d5";
    $connection可以获取client_id;
    }
    如果参数里面有用户(13969)的值我就可以sendtoUid('13969','02 03 05 d5 aa 52 d5'),告知用户端(js)这个设备是否正常。

  • blogdaren 2020-08-11

    这么说吧,如果你要用SendToUid()接口的话,那无论是用户端还是设备端都必须主动上报各自的业务uid比如你说的用户ID。

敖德萨

你不绑定设备是用户的吗? 就比如扫码后就绑定这台设备是这个用户的归还后解除绑定 如果是永久使用那就更好了绑定即可 这样你接收数据和发送数据都是很简单了 不然你这样弄我怎么知道要发给谁呢? 就比如两个(N)人同时使用两台设备你是怎么区别谁使用的是那一台设备呢?

  • workerstar 2020-08-11

    感谢百忙之中回复,我用的mysql解决的。