问题描述
通过“ / 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 (将#修改为@)