文档章节

kotlin使用rabbitmq(三)

weidedong
 weidedong
发布于 01/14 17:34
字数 285
阅读 6
收藏 0

使用C#发送消息,spring boot rabbitmq可订阅

要实现以上功能,需要解决三个问题

1.序列化之后时间格式不一致

2.命名规则不同(java首字母小写)

3.spring boot rabbitmq需要typeid及content_type等

解决前两个问题比较容易,序列化的时候设置

private static readonly JsonSerializerSettings settings = new JsonSerializerSettings()
        {
            ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
            DateFormatString = "yyy-MM-ddThh:mm:ss.fff",
            // 设置为驼峰命名
            ContractResolver = new CamelCasePropertyNamesContractResolver()
        };

解决最后一个问题就需要麻烦一点,就需要把properties里所需要的属性及头都要设置上

 var properties = channel.CreateBasicProperties();
                    properties.DeliveryMode = 2;
                    properties.ContentEncoding = "UTF-8";
                    properties.ContentType = "application/json";
                    properties.Priority = 0;
                   
                    Dictionary<string, object> headers = new Dictionary<string, object>();
                    properties.Headers = headers;
                    // body value
                    string jsonContent = JsonConvert.SerializeObject(entity, settings);
                    if (!string.IsNullOrEmpty(javaClass))
                    {
                        properties.Headers.Add("__TypeId__", javaClass);
                    }
                    else
                    {
                        //再次转义
                        jsonContent = JsonConvert.SerializeObject(jsonContent);
                        properties.Headers.Add("__TypeId__", "java.lang.String");
                    }
                   
                    var body = Encoding.UTF8.GetBytes(jsonContent);

这样spring boot rabbitmq就可以处理C#发送的消息了

© 著作权归作者所有

共有 人打赏支持
weidedong
粉丝 4
博文 89
码字总数 28454
作品 0
深圳
私信 提问
Docker安装部署RabbitMQ、PHP安装扩展AMQP及测试

一、使用Docker安装部署RabbitMQ 1、docker search rabbitmq:management 2、docker pull rabbitmq:management 注:如果docker pull rabbitmq 后面不带management,启动rabbitmq后是无法打开管......

老查
2018/11/06
0
0
zabbix自动发现rabbitmq

参考文档 http://blog.csdn.net/qq29778131/article/details/52537288?ticket=ST-77459-cUGNcZF1BJBtNuZoZe1i-passport.csdn.net #python脚本 一,实现功能 实现自动发现rabbitmq queue,并监......

typuc
2018/06/26
0
0
【原创】管理 RabbitMQ 服务器的几种方式

1.通过 rabbitmqctl 脚本 rabbitmqctl 是 shell 脚本,其通过 exec 调用了 erl 程序。会间接调用到如下两个 shell 脚本: rabbitmq-env rabbitmq-defaults在使用该脚本时允许用户定制的环境变...

摩云飞
2013/10/24
0
2
RabbitMQ安装(CentOS 7 64位)

一、安装Erlang 详细的安装介绍在这里(https://www.erlang-solutions.com/downloads/download-erlang-otp) wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rp......

nibilly
2015/04/28
0
0
ubuntu下安装rabbitMQ

一.环境准备 rabbitMQ需要erlang语言的支持,因此需要先安装erlang语言 二.下载 http://www.erlang.org/download/optsrc17.3tar.gz 并解压 三.安装 ./configure --prefix=/home/liyixiang/e...

清风傲剑
2015/02/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

eggjs与sequelize简单demo

参考 egg 官方文档 安装 // 依赖npm install --save egg-sequelize mysql2// ts 类型npm install --save @types/sequelize 插件,config/plugin.ts import { EggPlugin } from 'egg';......

Geeyu
51分钟前
1
0
看过上百部片子的这个人教你视频标签算法解析

本文由云+社区发表 随着内容时代的来临,多媒体信息,特别是视频信息的分析和理解需求,如图像分类、图像打标签、视频处理等等,变得越发迫切。目前图像分类已经发展了多年,在一定条件下已经...

腾讯云加社区
今天
4
0
2. 红黑树

定义:红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树(Binary Search Tree)。 要理解红黑树,先要了解什么是二叉查找树。在上一章中,我们学习了什么是二叉树,以及二叉树...

火拳-艾斯
今天
3
0
input的button类型,点击页面跳转

一、input type=button 不做任何操作 例如: <input type="button" class="btn btn-primary" style="width: 30%" value="返回" onclick="window.location.href='/users/list'"></input> onc......

Sunki
今天
1
0
踩坑:js 小数运算出现精度问题

背景 在学习小程序商城源码时发现了这个问题,单价可能出现小数,小数之间运算结果会莫名其妙多出一大串数字,比如下面这样👇。 在此之前我是知道 js 中著名的 0.1 + 0.2 != 0.3 的问题的,...

dkvirus
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部