12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package main
- import (
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/gorilla/websocket"
- "net/http"
- "os"
- )
- var ListenAddress string
- var upGrader = websocket.Upgrader{
- CheckOrigin: func(r *http.Request) bool {
- return true
- },
- }
- func ping(c *gin.Context) {
- ws, err := upGrader.Upgrade(c.Writer, c.Request, nil)
- if err != nil {
- return
- }
- defer ws.Close()
- for {
- mt, message, err := ws.ReadMessage()
- if err != nil {
- break
- }
- if string(message) == "ping" {
- message = []byte("pong")
- }
- err = ws.WriteMessage(mt, message)
- if err != nil {
- break
- }
- }
- }
- func main() {
- ListenAddress = os.Getenv("listen")
- if ListenAddress == "" {
- fmt.Println("No environment variable 'listen', use default value ':9090'")
- ListenAddress = ":9090"
- }
- r := gin.Default()
- r.GET("/api/ws/ping", ping)
- r.GET("/api/hello", hello)
- r.Run(ListenAddress)
- }
- func hello(context *gin.Context) {
- context.Writer.WriteString("hello")
- context.Status(200)
- }
|