2009-07-10 30 views
5

Growl'in bir web sitesinden Growl bildirimlerine izin verdiğini fark ettim. Bunu uygulamaya çalışan var mı?Web Sunucusundan Büyütme Bildirimleri

Eğer öyleyse, hangi biçimi aldı? Çok kullanıcı desteği mi oldunuz? Ve herhangi bir kod örneği verebilir misiniz (C# veya Objective-C tercih edilir ama ben bu karışık değil)?

Zengin

cevap

4

çeşitli diller için GNTP (Growl Ağ Aktarım Protokolü) bağlamaları, bir list of bindings can be found here vardır - bunlar bir PHP komut dosyası, diyelim ki, gelen bildirimleri göndermesine izin verir.

Growl'un UDP sistemine doğrudan güvenmeyeceğim, ancak bildirimleri (belki de küçük bir web uygulaması olarak) alan ve depolayan bir sunucu ve HTTP aracılığıyla yeni iletileri alıp bunları büyütünce yerel bir betik yazarım. Hiç de karmaşık değil, UDP'den daha güvenilir olacak ve Growl'ing makineniz kapalıyken veya erişilemediğinde mesajları sıraya sokabilir. (Net_Growl kullanmak olabilir) sözde PHP'de Temelde

, server.php uygulamak için çok uzun sürmez:

<?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 sözde Python (gntp kullanmak olabilir):

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'])