Skip to content

Instantly share code, notes, and snippets.

@BK1031
Last active July 10, 2024 18:28
Show Gist options
  • Save BK1031/0d9ba73a55ec32888162e8145265c61a to your computer and use it in GitHub Desktop.
Save BK1031/0d9ba73a55ec32888162e8145265c61a to your computer and use it in GitHub Desktop.
racecar_analytics websocket endpoints
func StartServer() {
r := gin.Default()
r.GET("/ecu", GetAllECUs)
r.GET("/battery", GetAllBatteries)
r.GET("/ecu/averages", GetECUAverages)
r.GET("/battery/averages", GetBatteryAverages)
r.GET("/ecu/stream", StreamECUs) // add this
r.GET("/battery/stream", StreamBatteries) // add this
r.Run(":" + Port)
}
// other functions here
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func StreamECUs(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println(err)
return
}
defer conn.Close()
RegisterECUCallback(func(ecu ECU) {
conn.WriteJSON(ecu)
})
for {
_, p, _ := conn.ReadMessage()
log.Println(string(p))
}
}
func StreamBatteries(c *gin.Context) {
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil {
log.Println(err)
return
}
defer conn.Close()
RegisterBatteryCallback(func(battery Battery) {
conn.WriteJSON(battery)
})
for {
_, p, _ := conn.ReadMessage()
log.Println(string(p))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment