Growl Уведомления с веб-сервера - PullRequest
5 голосов
/ 10 июля 2009

Я заметил, что Growl допускает возможность уведомлений Growl с сайта. Кто-нибудь пробовал реализовать это?

Если так, какую форму он принял? Вы реализовали многопользовательскую поддержку? И не могли бы вы привести примеры кода (C # или Objective-C предпочтительнее, но я не так уж смущен)?

Rich

1 Ответ

4 голосов
/ 10 июля 2009

Существует GNTP (протокол сетевого транспорта Growl) для различных языков, список можно найти здесь - они позволяют отправлять уведомления, скажем, из PHP сценарий.

Я бы не стал доверять UDP-системе Growl напрямую, а написал бы сервер, который получает и хранит уведомления (возможно, в виде крошечного веб-приложения), и локальный сценарий, который обычно собирает любые новые сообщения через HTTP и выращивает их. Совсем не сложно, будет более надежным, чем UDP, и может ставить в очередь сообщения, когда ваш растущий компьютер выключен или недоступен. Реализация

не займет много времени

В основном, 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'])
...