如何解决如何访问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 举报,一经查实,本站将立刻删除。