来自Web服务器的低级通知

时间:2009-07-10 14:13:55

标签: web-services notifications growl

我注意到Growl允许从网站发出Growl通知。有没有人尝试过这个呢?

如果是这样,它采取了什么形式?您是否实施了多用户支持?并且,你能提供任何代码示例(C#或Objective-C会更好,但我不是那么讨厌)?

1 个答案:

答案 0 :(得分:4)

各种语言都有GNTP(Growl网络传输协议)绑定,list of bindings can be found here - 这些允许您从PHP脚本发送通知。

我不会直接信任Growl的UDP系统,而是编写一个接收和存储通知的服务器(可能是一个小小的Web应用程序),以及一个通过HTTP定期抓取任何新消息并使其增长的本地脚本。根本不复杂,比UDP更可靠,并且可以在您的Growl'ing机器关闭电源或无法访问时排队消息。不应该花很长时间来实施

基本上,伪PHP中的server.php(可以使用Net_Growl):

<?php
if($_GET['action'] == "store"){
    $title = $_POST['title'];
    $message = $_POST['message'];
    $password = sha1($_POST['password']);
    if($password == "..."){
        store_in_database(sanitise($title), sanitise($message);
    }
} else {
    print(json_encode(get_notifications_from_database()));
    mark_notifications_as_read();
}
?>
伪Python中的

client.py(可以使用gntp):

while 1:
    time.sleep(60):
    data = urllib.urlopen("http://myserver.com/server.php?action=get&password=blah").read()
    for line in data:
        notif = json.decode(line)
        growl.alert(notif['title'], notif['message'])