Javascript 使用rabbitmq stomp发送protobuf(二进制)数据
我在客户端使用protobuf.js为rabbitmq stomp创建了一个示例。 protobuf示例链接: 发送消息文件内容:-Javascript 使用rabbitmq stomp发送protobuf(二进制)数据,javascript,rabbitmq,protocol-buffers,stomp,content-length,Javascript,Rabbitmq,Protocol Buffers,Stomp,Content Length,我在客户端使用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_
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
);
}
接收文件内容:-
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
);
}
我无法解码stomp发送的数据(protobuf二进制数据)。
如果问题通过“内容长度”解决,请指导我将“内容长度”设置为跺脚标题
请帮帮我。没人知道这件事?我知道两年后我会回答!但我想我应该分享:) 我正在从事一个使用rabbitmq stomp发送ProtoBuf编码数据的项目 我面临着同样的问题:我可以发送,但无法在接收端解码 我只需使用另一种编码即可实现:
- 更改:
var buffer = car.encode();
致:var carDec =Car.decode64(buffer);
- 更改:
var buffer = car.encode();
致:var carDec =Car.decode64(buffer);
这解决了我的问题,我希望它也解决了你的问题。@Fouad你是用base64编码的吗?