iris 的 websocket 初始接触
在查看learnku的iris文档时,发现里面提供的关于websocket的样例无法正确执行,查看其在GitHub上提供的样例(https://github.com/kataras/iris/tree/maste...) (此处多说一句之所以选examples/websocket/下其他的测试包,基本都是需要配合前端写单独的js才能执行)在对其中一些代码执行时需要稍加需改,因为我们一般在初始试用是只是在一个浏览器打开websocket在线测试网站进行测试,这里会涉及到跨域问题导致在连接客户端时直接就是失败的,下面附上针对此处修改代码
mytmpu:=new(gorillawo.Upgrader)
mytmpu.CheckOrigin= func(r *http.Request) bool {
return true
}
MyUpgrader:=gorilla.Upgrader(*mytmpu)
websocketServer := websocket.New(
MyUpgrader, /* DefaultGobwasUpgrader can be used too. */
websocket.Events{
websocket.OnNativeMessage: func(nsConn *websocket.NSConn, msg websocket.Message) error {
log.Printf("Server got: %s from [%s]", msg.Body, nsConn.Conn.ID())
nsConn.Conn.Server().Broadcast(nsConn, msg)
return nil
},
})
websocketServer.OnConnect=func(c *websocket.Conn) error {
fmt.Printf("[%s] Connected to server!\n", c.ID())
return nil
}
默认DefaultGobwasUpgrader 中没有定义CheckOrigin方法进而启用默认验证跨域,这里直接将跨域验证返回ture就可以使用随意的网页客户端测试了
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: