I'm 赵一开/BlahGeek, a CS&T Student @ Tsinghua U.

Get in touch:   See more:

个人服务器向PC、手机发送通知

 本文已被标记为过时

文中提到的相关信息可能已经发生了很大的变化,请谨慎以本篇文章的内容作为参考做任何事情。

最近突然想到给自己搭建一个比较完善的通知系统还是比较有趣的...

通知至Linux PC

Gnome什么的用的通知系统应该都是libnotify(Unity用的是osd-notify,不过都大同小异),它提供一个notify-send能直接显示通知,效果不错。

但是在本地执行notify-send title message是可以的,如果是远程服务器需要给自己电脑通过ssh执行notify-send发送通知的话,需要将DISPLAYDBUS_SESSION_BUS_ADDRESS两个环境变量设置为本地的值。

另外一个问题是,自己电脑的IP地址不是固定的,服务器端并不知道每次的IP地址。

对于以上两个问题我能想到的解决方法是每次开机(连接上网络)后给服务器发送自己的IP地址和两个环境变量的值,这样服务器就能完成通知了。

当然,电脑不是随时都开着的,当电脑开着的时候当然希望通知能发送到电脑桌面,当电脑关闭的时候,就是服务器如果发现无法连接时,应该使它推送到手机上。

通知至iOS设备

iOS的通知系统使用的是推送,大概就是每个app需要给设备发送通知的时候需要给Apple服务器发送一个请求,然后再由Apple服务器统一推送至设备。这样的好处大概就是设备只需保持一个连接,省电省流量,而且通知不容易丢失;坏处当然就是自己想要给设备发送通知就有些困难。

不过还好,有一个叫Pushover的app能够作为类似一个代理的东西,只要给他的服务器POST一个HTTP请求,他就会给你的设备发送通知。

但是很可惜的是这个app是收费的,而且破解版也很难找到,我大概找了几十分钟才找到一个不是最新版本的...

Update: Checkout PushBullet!

可以用到的一些事情

  • 服务器访问异常
  • 通知某个网站内容改变(其实这点涵盖了非常多能用到的场合,因为“内容”不仅仅可以是网页的静态内容,更可以是动态内容,比如人人等)
  • 其他...