移动设备的统一的推送服务 Uniqush

Apache
Google Go
Linux
2012-09-06
Uniqush
Uniqush 正在参加 2019 年度最受欢迎开源中国软件评选,请投票支持!
Uniqush 在 2019 年度最受欢迎开源中国软件评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票赢奖品
已投票

Uniqush是一个自由和开放源码软件,它提供了一个移动设备的统一的推送服务。

通过服务器端运行 uniqush,你可以到任何受支持的移动平台接受推送通知。

手机推送, Golang, C2DM, APNS, Android, iOS

 

= 功能描述 =

更清晰的配图版功能描述在这里: http://uniqush.org/wiki/UniqushStory

目前的主要智能手机平台(Android, iOS, BlackBerry, Windows Phone)都会提 供针对各自平台的推送服务。简单说来,这种服务的工作方式是:

第三方App服务器有一些消息,需要推送给手机上的App -> 第三方App服务器把消 息发送给特定平台的云服务(推送服务) -> 该云将消息推送到客户手机

这种方式的确简化了第三方服务器的开发,但是如果需要支持多个平台,则需要针 对各自平台做相应调整。Uniqush目前主要工作是在第三方服务器与各自平台的云 服务之间建立起一套统一的接口,这样第三方服务器就可以不用修改,而支持更多 的只能手机推送平台。

注意:uniqush是一个*软件*,而*不是*一个推送服务。换句话说,uniqush的用户 需要在自己的服务器上运行uniqushuniqush.org并不提供任何推送服务(好吧, 这么说似乎有点多余,不过的确有好多人误以为如此)。

= 第三方依赖 =

目前在github上有两个branch,分别针对当前go的release版本和go的weekly版 本。需要依赖的第三方数据库是redis;依赖的第三方库包括redis.go和goconf。

redis.go的正式版本已经无法用最新的go release编译,为此我fork了redis.go这 个项目。代码在http://github.com/monnand/redis.go 上。同样是两个branch, 分别对应go的最新release和weekly版本。大家都知道,最近go的weekly变化很 大,是为了向go1转。所以weekly和master这两个branch也会差别较大。

goconf的官方版可以支持go的最新release(r60.3)。如果用weekly版本的话,需 要gofix再手动改些东西。我手头已经有了修改,但是鉴于goconf目前还比较活 跃,就没再fork出另外一个代码库。

= 代码成熟度 =

这个项目是在今年8月底开始开发,9月份正式实现了现有功能,十一的时候接口做 过一次大调整,之后就是bug fix,用gofix来跟进最新版的go,还有就是提高性能 (加入对象池,缓存等等)。

目前支持android和iOS两个平台的推送。本来打算再加入对windows phone的支 持,但是鉴于手头没搞到设备,只好暂时放弃了。个人认为,代码结构还算说得过 去,所以再加入一个平台的支持不会有啥大改动。

现在还没有做过大规模的测试,但是基本都可以按预期实现相应功能。

基本说来,俺对自己代码还有点信心。

= 项目知名度 =

零,或者约等于零。原因大约是这样的:
- 只是在golang的列表上发过一个ANN,还有就是在几个朋友圈子里内部聊过
- 本来计划11月左右在各个社区里说说这项目,可后来要么是我太忙,要么是看到 了go1的消息,总之,我打算改变计划,等Go1了(但愿Go1不要成为下一个Perl6)
- Go语言变化太快——准确说,是标准库变化,尤其是最近的几个weekly版本,已经 无法单纯用gofix来升级代码了,必须手动修改一些代码。我还是希望等go逐渐稳 定下来,在向其他社区宣传。目前基本就集中在go社区和朋友圈子里。

= 项目未来发展计划 =

- 不断跟着Go的升级而更新代码,直到Go1推出
- 在推出Go1之后,在其他社区内发布消息,并着手开发对windows phone的支持—— 好吧,我忽视了黑莓。但是由于黑莓的推送需要第三方安装SDK,这就让俺犹豫了。
- 目前的uniqush只是实现了我计划中的一半功能,另外一半还在设计中。这个我 们可以之后聊。
- 除了服务器端代码外,还要实现各个手机端的开发库,简化手机App的开发

= 总结 =

好了,如果各位对这个项目感兴趣,欢迎参观代码。注意:github上的代码是最新的。

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

优秀 Go 项目介绍: uniqush/log

MultiLogger,一个应用多个 Logger 的妙处.

2013/08/05 20:28
698
2
golang--读uniqush看http.Handle

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

2016/02/22 12:40
23
1
golang--gorilla/mux,强大的URL路由和调度器

标题完全是翻译,gorilla/mux is a powerful URL router and dispatcher,不过个人觉得翻译不到位,望指正。 gorilla/mux包是加一层结构,在这个结构里面配置客户端访问时需要的各种参数,然...

2016/02/22 12:41
87
1
思想一碰就冒火: 开源贡献须耐心, 选择框架要谨慎

引子 ==== 最近笔者学习Go语言的过程中,使用了一些不错的package. 使用过程中根据自己的理解和需求,需要对package做写修改. 这很容易, fork 一个分支自己修改就好. 但是开源的力量所在不是搞...

2013/08/18 14:05
667
0
Go 语言项目

Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org gowalker gosearch Sourcegraph Contributing To edit this page you must be a c...

2014/01/03 21:49
775
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部