如何访问echo websocketgorillaanother func

问题描述

通过“ / view”接收POST请求时,
我想通过网络套接字(ws)显示POST request body data
但是我不知道如何访问ws。

我使用回显服务器和大猩猩websocket。

main.go

package main

import (
    ...
    "github.com/gorilla/websocket"
    "github.com/labstack/echo"
)

var (
    rwMutex         = new(sync.RWMutex)
    dataSendChannel = make(chan []byte)
    upgrader        = websocket.Upgrader{}
    m               = echo.Map{}
)

当有人访问“ /”时使ws

func handleHome(con echo.Context) error {
    ws,err := upgrader.Upgrade(con.Response(),con.Request(),nil)
    defer ws.Close()
    return con.File("home.html")
}

func handleDataList(con echo.Context) error {
    // socket write

    if err := con.Bind(&m); err != nil {
        ...
    }

    go dataMakeJSON(m,dataSendChannel)
    go dataSendToView(ws,dataSendChannel) // This is wrong!
    return con.String(http.StatusOK,"Success!")
}
func dataMakeJSON(m map[string]interface{},c chan<- []byte) {
    ...
    c <- jsonString
}

我想在这里发送数据

func dataSendToView(ws *websocket.Conn,c <-chan []byte) {
    err := ws.WriteMessage(websocket.TextMessage,<-c)
    ...
}

func main() {
    e := echo.New()
    e.GET("/",handleHome)
    e.POST("/view",handleDataList)
    e.Logger.Fatal(e.Start(":1323"))
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)