微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAP:大数据发送的中断/并行化

如何解决SAP:大数据发送的中断/并行化

我正在使用 SAP:作为消费者观看,电话作为提供者。

通常他们之间的通信是完美的,但我现在有一个瓶颈:如果我从手机向手表发送大量数据(使用SASocket.secureSend),我无法中断它。

考虑一下:

我正在从手机向手表发送一笔大交易,在中间,我想从手表向手机发送一条消息:这是有效的,因此手表的消息会到达我的手机在这另一笔巨额交易中。即:SAP 似乎处理双工通信

问题:

我的手机无法回复这条手表信息,需要先等待大额转账完成。 我尝试使用不同的通道(一个通道用于命令,一个通道用于大数据),但仍然必须先完成大数据发送,然后才能发送命令(在不同的通道上进行无关紧要)。

我可以以某种方式中断大数据发送/开始并行发送命令吗?

按照推荐的方式发送当前会产生一个线程:

new Thread(new Runnable() {
    public void run() {
        Log.d(LOG_TAG,"run: SEND START!");
        try {
            mSASocket.secureSend(getServiceChannelId(0),data.getBytes());
        } catch (IOException e) {
            e.printstacktrace();
        }
        Log.d(LOG_TAG,"run: SEND END!");
    }
}).start();

我试过中断这个线程,但它并没有停止巨大的事务,所以它没有帮助。

我怎样才能中断大笔交易,或者向手表并行(具有更高优先级)发送另一条消息?

解决方法

SAP 为每个服务通道维护一个会话队列,如附件服务.xml 中所定义。

每个服务渠道可以有不同的优先级。

所以要解决这个问题,请为较小尺寸的数据使用的服务通道声明高优先级。这样即使更大的数据仍在传输,手机也可以发送其他高优先级的消息在不同的频道上观看。 请参考下面的代码片段。

<serviceProfile
.

.
    <serviceChannel
        dataRate="low"
        id="104"
        priority="low"
        reliability="enable" />

 

// create a new service channel with high priority and different id

    <serviceChannel
        dataRate="low"
        id="105"
        priority="high"
        reliability="enable" />
</serviceProfile>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?