golang iris下面的websocket
最近要做后台主动推送:(iris框架,封装的有wesocket,刚开始以为直接拿过来用,结果不是现在贴一下代码,写一下遇到的坑)
func main() {
app := iris.New()
app.Adapt(iris.DevLogger())
app.Adapt(httprouter.New())
//创建websocket服务器
ws := websocket.New(websocket.Config{
Endpoint: "/pushmessage",
})
ws.OnConnection(func(c websocket.Connection) {
c.Join("/push")
go func() {
for {
var datas = <-models.CHANDATA(这里就是遇到的 坑当时一直钻牛角尖怎么把这里从man函数拿出去,其实只要直接勇哥chananel传进来就行,推商铺那个成功之后在一个chananel回去就可以了,)
stringdata := datas.(string)
conns := ws.GetConnectionsByRoom("/push")
for _, v := range conns { //遍历所有的链接,发送(这里要遍历所有的链接,不然第一次推送会推送给第一个链接上的,第二次推送就会推送给第二个链接上的,不是所有的的都会推送)
err := v.EmitMessage([]byte(stringdata))
if err != nil {
v.Disconnect()
}
}
}
}()
})
app.Adapt(
ws,
sessions.New(sessions.Config{
Cookie: "mysessionid",
Expires: 0,
CookieLength: 32,
DisableSubdomainPersistence: false,
}),
view.HTML("./src/views", ".html"),
cors.New(cors.Options{
AllowedOrigins: []string{"*"},
AllowCredentials: true,
}),
)
现在还存在连接上websocket会接收到推送,不连接就会接收不到,就算再次链接也依然接收不到,(项目目前不要求做,就没做,后面做了补上来)
最新文章
- Qt for Mac 安装(包括PyQt)
- python 中使用celery
- Ext 三级联动 及附值
- http://debugjs.com/
- 转!!mysql order by 中文排序
- linux下的find文件查找命令与grep文件内容查找命令
- PIGOSS
- Magento给新产品页面添加分页
- mysql.server 文件修改起动多实例
- Android 工程在4.0基础上混淆
- 6 个基于 jQuery 的表单向导插件推荐
- 实现windows和linux的NFS交互
- 老毛桃U盘启动盘制作工具V20140501完美贡献版
- sql server 2012 数据库还原方法
- golang 实现简单的一致性哈希
- LeetCode 178. 分数排名
- HDU - 6167: Missile Interception (二分+圆的交)
- dtruss
- 【链表】Reorder List
- wk_06.md