当前位置: 首页 > 知识库问答 >
问题:

为具有messageStructure json和指定messageType的消息创建Amazon SNS订阅服务器

凤扬
2023-03-14
amazonSNSClient.subscribe(new SubscribeRequest(topicArn, "http", callbackUrl);
JSONObject jsonMessage = new JSONObject();
jsonMessage.put(DEFAULT, "foo");
jsonMessage.put(HTTPS, someOtherJsonObject);
jsonMessage.put(HTTP, someOtherJsonObject);

PublishRequest publishRequest = new PublishRequest(topicArn, jsonMessage.toString());
publishRequest.setMessageStructure(MESSAGE_TYPE_JSON);
amazonSNSClient.publish(publishRequest);

发布的消息被Amazon成功接收,并向订阅者发送通知。在AWS控制台中的验证确认我的订阅者订阅了“HTTP”协议。但是,订阅者接收的是“default”消息,而不是“HTTP”(json)消息。什么可能是错误的,为什么亚马逊推送‘默认’通知给订阅者,而不是‘HTTP’通知?

共有1个答案

魏誉
2023-03-14

你能给我们看一下要发送的确切字符串吗?我的猜测是您在消息中嵌入了JSON结构,而实际上您应该只使用字符串。

例如,我知道你正在发送这样的东西:

{
  "default": "foo",
  "http": {"anotherThing":1},
}

实际上你需要发送的是:

{
  "default": "foo",
  "http": "{\"anotherThing\":1}",
}
JSONObject jsonMessage = new JSONObject();
jsonMessage.put(DEFAULT, "foo");
jsonMessage.put(HTTPS, someOtherJsonObject.toString());
jsonMessage.put(HTTP, someOtherJsonObject.toString());

PublishRequest publishRequest = new PublishRequest(topicArn, jsonMessage.toString());
publishRequest.setMessageStructure(MESSAGE_TYPE_JSON);
amazonSNSClient.publish(publishRequest);
 类似资料:
  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html 组合模板并添加至帐号下的个人模板库 $tid = 563; // 模板标题 id,可通过接口获取,也可登录小程序后台查看获取 $kidLi

  • 开普勒消息目前分为三大类:公告,告警和通知。 通知中根据不同的操作事件类型,分为十几个事件。每个事件都跟项目操作相关。便于接收项目操作变更的通知。 分类 事件 公告 Alarm 告警 Proclaim 通知 Build,Apply,Audit,Delete,Rollback,Logging,Reboot,Command,Storage,Extend... 订阅界面: 用户中心,点击头像,下拉菜单→

  • 我有一个使用ActiveMQ的JMS生产者/订阅者的简单Spring应用程序,配置如下: 我试过所有可能的解决办法,但没有一个奏效。我们非常感谢任何帮助

  • 主要内容:一、通知,二、源码分析,三、总结一、通知 在Redis中,既可以实现消息的发送又可以实现订阅,也就是常说的发布/订阅。它的主要逻辑实现在nofigy.c和module.c、pubsub.c中,其实通知做为一种辅助功能,是易用性的一种良好的接口。Redis的通知功能是一种即时在线通知功能,如果CS端断线后,相关的消息就无法再次通知,也就是说,消息机制没有保存和重发功能。这也是为了实现设计上的简单和功能实现的鲁棒性的考虑,至于以后会

  • 有可能做到这一点吗?