2013-04-25 46 views
3

我已经在客户端使用protobuf.js为rabbitmq stomp创建了一个示例。 protobuf的例子链接:https://github.com/dcodeIO/ProtoBuf.js使用rabbitmq stomp发送protobuf(二进制)数据

发送邮件文件内容: -

var Game = builder.build("Game"); 
var Car = Game.Cars.Car; 
var car = new Car("Rusty", "mayur"); 
var buffer = car.encode();  

var mq_username = "guest", 
mq_password = "guest", 
mq_vhost = "/", 
mq_url  = 'http://192.168.0.14:15674/stomp', 
mq_queue1 = '/queue/A3'; 
var client = Stomp.client(mq_url); 
function on_connect() 
{ 

client.send(mq_queue1, { priority: 9}, buffer); 

} 
window.onload = function() 
{ 
client.connect(
     mq_username, 
     mq_password, 
     on_connect, 
     on_connect_error, 
     mq_vhost 
    );  

} 

接收文件内容: -

var Game = builder.build("Game"); 
    var Car = Game.Cars.Car; 
    var car = new Car("Rusty", "mayur"); 
    var buffer = car.encode();   

    var mq_username = "guest", 
    mq_password = "guest", 
    mq_vhost = "/", 
    mq_url  = 'http://192.168.0.14:15674/stomp', 
    mq_queue1 = '/queue/A3'; 
    var client = Stomp.client(mq_url); 
    function on_connect() 
    { 
     un = client.subscribe(mq_queue1, on_message); 

    } 
function on_message(m) 
{ 
    console.log('message received'); 
    console.log(m); 
    var buffer = m.body; 
    alert(buffer);      
    var carDec =Car.decode(buffer);       
    alert(carDec.model); 

} 
    window.onload = function() 
    { 
     client.connect(
      mq_username, 
      mq_password, 
      on_connect, 
      on_connect_error, 
      mq_vhost 
     );  

    } 

我无法解码的数据通过蹬发送(protobuf的二进制数据)。 请指导我设置“content-length”stomp标题如果通过“content-length”解决问题。

请帮帮我。没有人知道这件事?

回答

4

我知道我在2年后回答!但我想我应该分享:)

我正在使用rabbitmq stomp发送ProtoBuf编码数据的项目。

我面临同样的问题:我可以发送,但无法在接收端解码。

我得到了它的使用另一种编码简单工作:

  • 变化:

    var buffer = car.encode(); 
    

    到:

    var buffer = car.encode64(); 
    
  • 变化:

    var carDec =Car.decode64(buffer); 
    

    到:

    var carDec =Car.decode64(buffer); 
    

这解决了我的问题,我希望它也解决了你的。

+0

感谢您实际发布解决方案 – zeion 2016-07-13 15:21:25

+0

@Fouad您使用base64编码吗? – pantonis 2017-07-23 10:04:41

+0

@Fouad你能分享代码吗? – pantonis 2017-10-03 06:12:44