Моя текущая система выглядит следующим образом:
Там есть 1 ~ 4 андроида в паре с каждым MCU через Bluetooth (HC-06). они Android-приемники. и еще один андроид просто ждет их. он «отправитель» Android. между этими Receiver & Sender находится сервер, созданный Node js, использующий socket.io
Когда каждый MCU что-то делал, устройство MCU выдает сообщение «ok» Android-получателю по Bluetooth. Эти приемники Android передают (загружают) сообщение «ОК» на сервер. Когда сервер получает «ОК», равный количеству получателей, сервер, наконец, передает «ОК». (Например, если существует 2 получателя, то сервер должен получить 2 «хорошо» для передачи «хорошо» отправителю Android). Отправитель должен получить «ОК» с сервера, чтобы перейти к следующему шагу.
Моя проблема в том, что при использовании только одного приемника Android и прохождении «ОК» проблема «Времени не возникает». *, но при использовании более 2 получателей, существует большая задержка для отправки «ОК» отправителю * первое «ОК» сообщение быстро отправляется на сервер, но другое «ОК» сообщение всегда отправляется с большой задержкой,Сравнение одного получателя. Связь.
Так что, пожалуйста, посмотрите мой код и дайте какое-нибудь возможное решение. Спасибо за чтение.
Это на стороне сервера. «ytok» - это сообщение «ok» в моем описании.
Когда Android получает «ytok» от MCU (Bluetooth), Android отправляет «send_ytok» с помощью
if(btMessage.equals("YTOK")
socket.emit("send_ytok"); //this is Android side
и после,Сервер воспроизводит эти коды. Каждая операция 'send_ytok' заставляет сервер 'ytok' + = 1, когда 'ytok' == номер получателя, отправлять 'ytok' отправителю.
socket.on('send_ytok',function(){
console.log("send ytok ! ");
ytok+=1;
console.log("got ytok" + ytok + " from " + socket.id);
if(ytok == receiverNum){ //If server get ytok as receiver channel number
let message = {"messagecontent":'YTOK'};
io.to(senderId).emit('message', message);
//send YTOK to sender
}
Когда получатель равен единице, получая ytok == 1очень быстрый (менее 1 секунды), но более 2 получателей, получая ytok 2, ytok 3 ... несколько задерживается на довольно длительное время (5 ~ 10 секунд)
Если у вас есть небольшое решение для этой задержкипроблема, пожалуйста, ответьте мне. Конечно, эта проблема может возникнуть на стороне MCU, но я должен подумать и об этой стороне, поэтому я задаю эту проблему здесь. спасибо.