В настоящее время я использую mqtt для связи между клиентом и сервером, а метод публикации mqtt принимает сообщение в виде байтов. Мне нужно отправить широту, долготу, адрес и т. д. в мою единственную публикацию mqtt и иметь возможность получать их на стороне сервера. Как я могу достичь этого?
Я использую клиентскую библиотеку wmqtt на стороне клиента (android) и клиентскую библиотеку paho на стороне сервера (jsp, сервлеты).
deviceloc d=new deviceloc();
d.id="1234";
d.add="hyder";
d.lat=17.5;
d.lon=78.5;
try {
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o=new ObjectOutputStream(b);
o.writeObject(d);
byte bytes[]=b.toByteArray();
MqttMessage data=new MqttMessage(bytes);
ByteArrayInputStream b1 = new ByteArrayInputStream(data.toString().getBytes());
ObjectInputStream o1 = new ObjectInputStream(b1);
Object obj1;
try {
obj1 = o1.readObject();
deviceloc dd=(deviceloc)obj1;
System.out.println(dd.id);
System.out.println(dd.add);
System.out.println(dd.lat);
System.out.println(dd.lon);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
catch(IOException e)
{
e.printStackTrace();
}
Я получаю исключение streamcorrupted