我有一个通过 golang 创建的 api,它返回结果
{
id : drone4
item_parameter : {
altitude : 20,
longitude : 10.20
latitude : 24.5
}
作为 json 结果,但在代码中它使用调用 go func() 的 go 例程来处理来自 grpc-server 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 将此结果流式传输到 ui?有什么建议如何在 ui 中使用这种流式传输方式吗?