У меня есть API, созданный через golang, который возвращает результат
{
id : drone4
item_parameter : {
altitude : 20,
longitude : 10.20
latitude : 24.5
}
как результат json, но в коде он использует
подпрограммы go, которые вызывают go func () для обработки
результат от grpc-сервера golang
как это
go func() {
fmt.Print("start getPosition loop")
for {
msg, err := stream.Recv() // msg UAVPosition
if err == io.EOF {
// read done.
fmt.Print("start getPosition loop closed")
close(position)
return
}
if err != nil {
log.Fatalf("Failed to receive getPosition : %v", err)
close(position)
return
}
log.Printf("Position point[%s](%f, %f, %f)", uavID.Aircraft, msg.Latitude, msg.Longitude, msg.Altitude)
itemParameter := models.ItemParameter{
Latitude: msg.Latitude,
Longitude: msg.Longitude,
Altitude: msg.Altitude,
}
position <- models.DronePosition{
Name: uavID.Aircraft,
ItemParameter: itemParameter,
}
}
}()
Мне нужно получить значение позиции, которое я использовал этот канал
position := make(chan models.DronePosition)
если есть шанс, как я могу получить этот результат для потоковой передачи в пользовательский интерфейс с помощью go?
Любое предложение, как работать этот потоковый путь в пользовательском интерфейсе?