美文网首页
java http请求中调用socket/websocket业务

java http请求中调用socket/websocket业务

作者: 姬拉 | 来源:发表于2018-06-15 10:42 被阅读60次

    关键检索:request等待异步回调并继续执行,http请求挂起等待socket异步回调。
    随着智能行业蓬勃发展,难免有一种业务是:APP/web的一个http/https请求,需要获取智能设备的基本信息,又或者,机器人使用ros模块化通信的时候,需要联络各个模块把基本信息回执发回给服务端。
    本文章解决的是一个HTTP/HTTPS的请求挂起等待socket异步回调,我们以Java为例。


    通信示例

    代码过程如下
    创建一个回调服务类,我们使用object.wait();来锁定等待当前业务返回,一旦拿到返回结果使用object.notifyAll() 来解锁。
    BlockService 代码如下:


    BlockService
    SocketList

    定义接口类,用来回调:


    ICallBack
    在调用socket发送指令给设备的时候,存储了这个回调ICallBack:
    发送消息给设备的时候顺便存储这个CallBack
    一旦拿到机器人的返回结果,通过token回调,并且移除这个CallBack,当然一旦超时也要移除这个CallBack,超时移除已经在BlockService中(MyWebSocket.getCallBackMap().remove(blockModel.getKey());):
    image.png

    最终是回调+object.wait()来起到HTTP挂起效果,由于试验比较少,这里只是提供一种解决方案,具体性能如何,需要发时间写个测试。建议这样业务如果比较多时候还是使用 app<-socket->服务端<-socket->智能设备。这样的通信方案来做。

    csdn 需要手机号码绑定,懒得去执行那一步,简书写的排版不大好,有问题的朋友可以加群:367276878 找到群主,一起研究,ios/net/java都是可以的,另外对机器人通信和集群通信也可以互相学习。

    相关文章

      网友评论

          本文标题:java http请求中调用socket/websocket业务

          本文链接:https://www.haomeiwen.com/subject/ayypeftx.html