XMLSocket Uygulamaları oluşturmak (AS2)
Erdinç BARUT Tarih: 1/09/2008 Yorum: 1 adet
Okunma : 364 Tutanlar: Bu yazıyı 3 kişi tuttu.
Merhabalar
Eğer sizde siteniz için bir Flash oyun yapmak veya anlık veri alıp/gönderme işine ihtiyaç duyuyor iseniz XMLSocket sizin işinizi fazlasıyla görecektir.
Önceki flash versiyonlarında anlık veri alıp gönderme sadece LoadVariables ten ibaretti. LoadVariables sadece php,asp yada txt dosyalarındaki verileri okumaya yarıyordu fakat anlık kesintisiz veri aktarımı için yetersizdi. Herhangi bir istek yaptıgınızda verinin gelip gelmediğini anlamanız için ayrı bir fonksiyon yazmanız gerekiyordu. O zamanın Macromediası çözüm olarak XMLSocketi flashplayer 5 e dahil etti. Bu sayede FlashPlayer ile anlık veri transferi yapmak mümkün oldu.
XMLSocket sunucudaki calısan bir programa(porta) TCP protokolü ile baglanıp kesintisiz veri aktarımı yapabilir(sınırsız alır/gönderir). Temel çıkış amacı adındanda anlaşılacağı gibi XML verilerini alıp okutmaktır fakat baska uygulamalar olusturmaya izin verir.
Şimdilik sadece yüzeysel anlatım yapacağım ileride zamanım olursa elimden geldiğince bilgilerimi sizle paylaşacağım.
Aşağıdaki kod örneği belirtilen adrese bağlanıp gelen verileri size gösterecektir.
var Soket:XMLSocket = new XMLSocket();
Soket.onConnect = function(baglandi) {
if (!baglandi) {
trace("Baglanti basarisiz!");
}
};
Soket.onData = function(gelenVeri) {
trace("Alınan veri:"+gelenVeri.toString());
};
if (Soket.connect("flashokey.com", 1690)) {
trace("Baglandı");
trace("Test komutu gönderildi");
Soket.send("TEST KOMUTU");
} else {
trace("Baglanamadı");
}
Soket.onClose = function() {
trace("Bağlantı kesildi");
};
Tabi bu işin sadece istemci kısmı,sunucuda sizin uygulamanız belirtilen portu dinlemede olmalı ve o porta gelen verileri irdeleyip ona göre istemciye cevap vermeli. XMLSocketin bazı sınırlamaları bulunmaktadır.
1. Flash player 9 ile birlikte gelen güvenlik değişikliğinde istemcinin(flash moviemizin) sunucuya baglanması için sunucudan izin alması gerekmektedir. Ayrıntılı bilgi için http://www.adobe.com/devnet/flashplayer/articles/fplayer9security04.html bu adrese bakabilirsiniz.
2. Sunucudaki dinlemede olan port numarası 1024 den büyük olmalıdır aksi halde soket sunucuya bağlanamaz.
3. Sunucudan gelen her veri paketinin sonunda Zero Byte yani Chr(0) karakteri olmalıdır.Bunun nedeni veri geldikten sonra Zero Byte karakteri ile istemcinin paketin geldiğini anlayıp işleme koymasıdır. Bu nedenle XMLSocket tüm sunucu protokollerine bağlanamaz. ZeroByte karakteri Delphi bileşenleri için CHR(10) olabilmektedir.
Gelen verileri komutlara bölerek gelen verileri anlamlı hale getirebilirsiniz. Örneğin komutlarımızın paket ayıracı "X" karakteri olsun.
Soket.onData = function(gelenVeri) {
trace("Alınan veri:"+gelenVeri.toString());
var KomutDizisi = gelenVeri.split("X");
var KomutIsmi = KomutDizisi[0];
var parametre = KomutDizisi[1];
switch (KomutIsmi) {
case "A" :
trace("A komutu geldi Parametre:"+parametre);
break;
case "B" :
trace("B komutu geldi Parametre:"+parametre);
break;
}
};
Kendinize ait Flash istemcili ve istediğiniz herhangi bir dille kendi sunucu yazılımınızı oluşturmanızın en temel ve basit yolu XMLSocket ile bu şekilde mümkündür. Gerisi tamamen sizin gelen verileri komutlara bölüp istediğiniz gibi yönlendimenize bakmaktadır.
Kolay Gelsin!
Makale
İlişkili makale bulunamadı.
Haber
İlişkili haber bulunamadı.
Ders
İlişkili ders bulunamadı.
Etkinlikler
Toplantı
Kahraman ve need4code.com Projesi Connect Toplantısı
Kahraman ve need4code.com Projesi Connect Toplantısı
Selam arkadaslar,
Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 3Aralık...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 503 (2 kayıtlı, 501 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









çok iyi düşünmüşsünüz. xml socket dersleri lazımdı yanlız bunun as3 ü de olsa çok iyi. özellikle chat yapımlarında xml socket bayağı bir lazım :)