Mi lenne a jó megoldás erre a problémára?
A lényeg az, hogy privát beszélgetést szeretnék az oldalamra. Arra lenne szükségem, hogyha én rákattintok egy névre, akkor a másik oldalon, ha a felhasználó be van jelentkezve, akkor megnyíljon a kommunikációs ablak.
Sajnos nekem csak gányolásos megoldások jutnak eszembe, és az pedig nem jó. Arra lenne szükségem, hogy megnyíljon egy ablak, hogyha akár mondjuk a username session változó egyenlő lesz azzal, ahol egy boolean változó egyes az adatbázisban. Ez elég furán van megfogalmazva, de másképpen nem tudom leírni.
Van egy login táblám, amiben található egy private_active nevű sor. az rendesen meg is kapja az egyes értéket, és visszakapja a nullásat, belépéskor és kilépéskor. De a túloldalon nyilván nem nyílik meg ugyanaz a beszélgetés. Hogy lehetne ezt megoldani?
Legszebb a WebSocket lenne, de sajnos ez a lehetőség sok tárhelyen nem érhető el... :-(
Az első bekezdés jól össze foglalja: [link]
Valószínűleg a te esetedben a "barkácsmegoldás" szükséges.
Ez azt jeleneti, hogy WebSocket helyet AJAX -al kommunikálsz a szerverrel.
Ha valakinek a nevére kattintasz, akkor elküldesz egy infot a szervernek: pl. chat-on.php?uid=123
Ekkor a te felhasználód meghívja chat-ben az 123 UserID -val bíró tagot.
Ez lehet pl. úgy hogy van egy tábla pl. chat-connect és ebbe felviszed a két UID -t, a sajátod és akivel beszélni szeretnél.
Másik embernél X másodpercenként lefut egy status.php ami változásokat kéri le a legutóbbi sikeres lekérés óta. (javaslom sessionba tárold és frissítsd mindig a time kódot, hogy minnél újabbat kell kereseni )
A status.php vissza ad egy JS utasítást, hogy XY chateleni akar, ezért megnyitod neki az ablakot.
majd ha vannak friss üzenetek, akkor hozzá adod azokat is esetleg több ablakba is.
(chat ablakokat a chat-connect ID -jával azonosítaná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!