我目前使用两个不同的平台进行同步操作。所以,当动作发生在平台1(C# - 视觉工作室),同样的行动,那么需要在平台2(JAVA)的情况发生。要做到这一点,我使用SB(Azure的服务总线),两个平台之间共享的JSON消息。
动作1:1的平台---->服务总线-----> 2的平台。
工作正常。该消息被发送和接收,正是因为它应该是。
动作2:2的平台---->服务总线---->平台1。
不工作。该消息被正确地发送到SB,但是当它拾取,所述内容属性仅包含一个空数组,当它应该是(包含消息)的字节的阵列。其他消息属性类似的contentType,的replyTo等设置是否正确,所以该消息被越来越拿起罚款。这只是没有内容或者换句话说邮件正文。
操作3:天青SB /发送消息----->服务总线----->平台1。
工作正常。另一种选择是直接使用Azure的服务总线/发送消息,并在那里把JSON消息发送JSON消息到服务总线。
对于操作2和3完全一样的消息被发送到服务总线(当我观看)。一种是直接发送到服务总线,另一种是由平台2产生,我认为实际的消息在某种程度上似乎是在后台,这就是为什么在邮件正文是在动作2空不同。
线程和进程正在正确处理。
要设置接收器:
IMessageReceiver receive r= null;
if (config.isSessionsEnabled()) {
receiver = ClientFactory.acceptSessionFromConnectionStringBuilder(new ConnectionStringBuilder(connString), config.getSessionID(), ReceiveMode.PEEKLOCK);
} else {
receiver = ClientFactory.createMessageReceiverFromConnectionStringBuilder(new ConnectionStringBuilder(connString), ReceiveMode.PEEKLOCK);
}
为了接收消息:
try {
message = receiver.receive(Duration.ofSeconds(1)); //message.Content will be empty array
if(message != null){
//process message
}
} catch (Exception e) {
}
}
我的理解是正确的或者可能还有另一种解释吧!
我的理解是正确的或者可能还有另一种解释吧!
这是非常奇怪的是,如果你从Java平台发送消息,消息的内容是空的。
根据我的理解,似乎该消息内容为空当您发送到ABS。我推荐你可以检查Java发送到ABS之前发送短信代码。
您ALSE可以使用Azure Service bus exploer得到消息后的信息发送到ABS [从.Net平台之前收到。