加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang--读uniqush看http.Handle

发布时间:2020-12-16 18:34:33 所属栏目:大数据 来源:网络整理
导读:uniqush是一款用golang写的推送服务工具,它的介绍在这里。官网在这里,源码托管在github。uniqush现在的版本是1.4.2, 在我们国人用golang写的代码中,这个应该算是出类拔萃的。 在main.go文件里面的main()函数,直接就运行Run()函数,它会返回一个error值

uniqush是一款用golang写的推送服务工具,它的介绍在这里。官网在这里,源码托管在github。uniqush现在的版本是1.4.2, 在我们国人用golang写的代码中,这个应该算是出类拔萃的。


在main.go文件里面的main()函数,直接就运行Run()函数,它会返回一个error值。在configparser.go里面找到Run()函数的定义,里面运行了2个goroutine。1个goroutine是rest.signalSetup()函数,在类unix平台下,它会监控syscall.SIGTERM,os.Kill信号;在windows下,它会监控os.Kill信号。监控到信号后,它会优雅关闭服务。另一个goroutine是rest.Run()函数。在rest.Run()函数里面,它里面运行了几个http.Handle()函数。然后就查看了一下http.Handle()函数的定义,有了这片博文。

http.Handle()函数的定义是func Handle(pattern string,handler Handler),其中pattern就是类似http://localhost:port/hello中的hello字段。Handler是一个interface,它里面声明了一个ServeHTTP()函数。回过头来看,在restapi.go文件里面,RestAPI结构就实现了一个ServeHTTP()函数。所以从这个角度看来,uniqush是一个简单的http应用。

刚看uniqush代码,发现很大,而且感觉乱。现在理清了思路,里面就简单了监控了几个字段,然后把结果发送到客户端。
由于是在同学的机器上看代码,也没有运行程序,等有机会编译运行后,截个图发上来。

转贴请注明来自: 格通

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读