(C#) WPF frissítése WCF-en keresztül?
Sziasztok!
Ott akadtam el, hogy van egy WPF alkalmazásom, amiben van egy online userek lista. Ezt a listát kéne frissíteni, amikor valaki bejelentkezik a host-on. Hogyan tudnám legegyszerűbben megcsinálni? Egy csomó tutorialt néztem már, de egyikből se jöttem rá. Tudnátok segíteni? Esetleg egy tutorial, ahol érthetően le van írva?
Csinálj egy static classt, pl.:
public static class UserData
{
private static List<string> _usernames = new List<string>();
public static List<string> GetUserNames()
{
return _usernames;
}
public static void AddUser(string username)
{
if (!_usernames.Contains(username))
_usernames.Add(username);
}
public static void RemoveUser(string username)
{
if (_usernames.Contains(username))
_usernames.Remove(username);
}
}
Így amikor valaki bejelentkezik, csak meghívod a
UserData.AddUser-t, stb.
Igen, ezzel tudom frissíteni WCF-en a userek listáját, de nekem az kéne, hogy minden WPF kliensen befrissüljön a user lista, ha WCF-en hozzáadódik egy.
Szerintem ebből az lesz, hogy nyitok WPF-en egy thread-et, ami másodpercenként ellenőrzi.
A másodpercenként lekérdezgetés az nagyon elhibázott dolog lenne, tök feleslegesen terhelnéd vele a szervert..
Attól tartok, erre a szimplex WCF nem megoldás abszolút nem alkalmas.
Egy fokkal jobb megoldás lenne a duplex WCF:
És még egy fokkal jobb pedig az lenne, ha egy sima TCP szervert írnál, és arra egy saját protokoll. Ez sokkal bonyolultabb persze, mint összedobálni a WCF-et, de sokat tanulsz belőle :)
Valóban nem jó megoldás, pont a terheltség miatt, de sajnos időhiány miatt kénytelen leszek már az én verziómmal csinálni. (beadandó rlz)
Ilyen duplex megoldásra lettem volna kíváncsi, csak nem igazán találtam érthető leírást hozzá, köszi! Ezt majd azért még tanulmányozom, ha lesz időm.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!