2009-07-10 13 views
5

Zauważam, że Growl pozwala na możliwość powiadamiania Growl ze strony internetowej. Czy ktoś próbował tego dokonać?Powiadomienia Growl z serwera WWW

Jeśli tak, jaką formę zajęło? Czy wdrożyłeś obsługę wielu użytkowników? Czy możesz podać jakieś przykłady kodu (C# lub Objective-C byłyby lepsze, ale ja nie jestem taki skonsternowany)?

Rich

Odpowiedz

4

Istnieje GNTP (Growl Sieci Transportowej Protocol) Wiązania dla różnych języków, o list of bindings can be found here - te pozwalają na wysyłanie powiadomień z, powiedzmy, skryptu PHP.

Nie ufałbym bezpośrednio systemowi UDP Growla, ale raczej napisałem serwer, który odbiera i zapisuje powiadomienia (może jako mała aplikacja internetowa), oraz lokalny skrypt, który rutynowo pobiera nowe wiadomości za pośrednictwem HTTP i je modyfikuje. Nie jest to wcale skomplikowane, będzie bardziej niezawodne niż UDP i może umieszczać w kolejce wiadomości, gdy Twoja maszyna Growl jest wyłączona lub nieosiągalna. nie powinno trwać długo, aby wdrożyć

Zasadniczo server.php w pseudo-PHP (który może wykorzystać 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 w pseudo-Python (które może wykorzystać 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'])