5

我注意到 Growl 允许来自网站的 Growl 通知。有没有人尝试过实现这个?

如果是这样,它采取了什么形式?您是否实现了多用户支持?而且,您能否提供任何代码示例(C# 或 Objective-C 更可取,但我没那么大惊小怪)?

富有的

4

1 回答 1

4

有各种语言的GNTP(Growl 网络传输协议)绑定,可以在此处找到绑定列表- 这些允许您从 PHP 脚本发送通知。

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

基本上,server.php在伪 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();
}
?>

client.py在伪 Python 中(可以使用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'])
于 2009-07-10T14:37:17.217 回答