RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布 (4)

 model 包的 init 函数里面,需要使用 gob 包的 Register 函数把将要编码的类型进行注册,这样依赖于这个包的其它 Go 程序就可以把     SensorMessage 这个类型的消息对象发送过去了

 

建立 Queue 相关的工具包

建立 tools 包,并建立 queuetools.go 文件,其内容如下:

RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布

代码内容与之前的项目类似,就不解释了。

 

发布传感器数据到 RabbitMQ

这里还会使用到 bytes 包。

回到 main.go,修改代码:

RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布

前面添加了获取 Channel  Queue 的代码。其中第 37 行比较重要,因为我们不能保证在程序运行时,使用 Queue 名称作为路由 Key  Queue 存在,而使用 GetQueue 函数,就可以保证这个 Queue 会被正确的设置,并准备好被我们使用了。

 42 行,使用 bytes 包创建了一个 *bytes.Buffer,它用来来承载编码后的数据,这个 Buffer 可以重复利用,所以实在 for range 的外部声明的。

但是每次使用 Buffer 都需要进行重置,也就是第 53 行的作用,这样以前的数据就会被移除,Buffer 的指针会回到初始位置。

 43 行,使用 gob  Buffer 来创建编码器 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfzsj.html