PHP: Ha a fájl tartalma frissül, frissítse az oldal tömb adatait

PHP: Ha a fájl tartalma frissül, frissítse az oldal tömb adatait
2022-04-15T15:03:46+02:00
2022-05-01T19:12:48+02:00
2022-10-15T21:21:07+02:00
NorbertSr
Adott egy szoftver, mely különböző időpontokban frissít egy data.txt fájl tartalmát (ez egy rádió, tehát adott hangfájl terjedelmétől függ, tehát változó idő).
A data.txt fájlban összesen 6 információ van adott karakterrel elválasztva (ez nekem egy tömb lesz).
A php fájlomban megnyitom olvasásra, feltöltöm a tömböt stb.
Jelenleg
$data_cell[0]
-tól
$data_cell[5]
-ig.
Ezen adatokat pedig ugyan ezen php fájlomban a html body részében egy táblában formázva megjelenítem.
Eddig sajnos csak statikusan működik, azaz eddig jutottam, hogy most kéne az a lépés, hogy a "háttérben" mondjuk 5 másodpercenként ellenőrizné egy script, hogy van e valami változás a data.txt-be, s ha van, csak akkor írja felül a megjelenítendő megváltozott tartalmat a táblába, lehetőleg a teljes oldal újratöltése nélkül.
Lényegében a legprecízebb megoldás az lenne, ha csak azon adatokat töltené újra és jelenítené meg, ami megváltozott.
Bocsánat a szakmaiatlan fogalmazásért, de erősen az is vagyok...
Olvastam, hogy egy ajax script ezt képes megoldani, de én nem tanultam.
Nekem ez pl egy szimpla script, de ez csupán a teljes oldalt újra tölti és fix időpontokban:

<script> var counter = 5; // VISSZASZÁMLÁLÓ var count_down = window.setInterval(function () { counter--; if (counter >= 0) { var span; span = document.getElementById("display_counter"); span.innerHTML = counter; } if (counter === 0) { clearInterval(counter); } }, 500); var page_refress = window.setInterval('refresh()', 5000); // AZ OLDAL FRISSÍTÉSE, ÚJRATÖLTÉSE function refresh() { window.location.reload() ;} function stopFunction() { clearInterval(count_down); clearInterval(page_refress); } </script>
Mutasd a teljes hozzászólást!
Egy kicsit beújítottam a projektemet. Mostantól még egyszerűbb a kliens elkészítése.
A headerben csak hivatkozni kell egy script tag-el a szerveren található plugin.js-re (Azaz a szerver egyfajta kliensoldali js cdn-ként is funkcionál)
plédául

vagy 

(Természetesen a saját szervered esetén ezt ki kell cserélni a te domainedre vagy IP címedre)

A html body részébe csak egy üres div kell.

<div id="nowplayed"></div>
Majd a záró body tag előtt egy script tagben meghívni ezt

getPlugin('nowplayed', 'SOCKET CLIENT')
vagy 

getPlugin('nowplayed', 'SOCKET CLIENT')
(A szerver cím itt is kicserélendő)

Itt van néhány példa a 

(Először indítsd el a szevert, különben a kliensek nem fognak működni)

Client Codepen példa: https://codepen.io/bzozoo/full/eYVOzbe

Client JSFIDDLE példa: GET NOW PLAYED CARD FROM PLUGIN - CODESANDBOX SERVER - JSFiddle - Code Playground


CONFIG.INI fájlba raktam a szerver fontos beállításait. 

SOCKET-SERVER-CLIENT-DEMO/config.ini at main · bzozoo/SOCKET-SERVER-CLIENT-DEMO

GitHub - bzozoo/SOCKET-SERVER-CLIENT-DEMO: A fictional radio gives you currently playing music Demo
Mutasd a teljes hozzászólást!

  • A setInterval itt annyira nagyon nem lesz jó választás. Az vele a probléma, hogy egy HTTP request indítása aszinkron művelet, amire várakozni kell, amíg a szerver nem válaszol. A setInterval pedig nem várakozik. Ez előidézhet olyan eseteket, például ha az első request végrehajtása valamilyen hálózati ok miatt 9 másodpercig tart, míg a második request megvan 30 ezredmásodperc alatt, a régi tartalom (amit az A request töltött le) felül fogja írni az aktuális tartalmat (B-t).

    Két dolgot tehetsz:
    1) Ha 5 másodpercenként pollozod a szervert, és 4 másodpercen belül nem érkezik válasz, timeout-olsz és megszakítod a request végrehajtását. JQuery-vel például így: Time-out with jQuery.get()
    2) A setInterval-nál valami sokkal okosabb megoldást használsz, ami támogatja a Promise-okat (és ezzel együtt az async-await mintát). Az NPM-en van egy SmartInterval package, de az az igazság, hogy nem vagyok JavaScript frontend mester, így nem tudom, hogy lehetne ezt életre kelteni. Talán Webpack + Babel kombó...? GitHub - 4skinSkywalker/SmartInterval: An interval that can be started/stopped and evaluates sequent

    Harmadikként pedig azt jegyezném meg, hogy amikor a fájlt elkéred a szervertől, a szerver a headerek közt küldjön ETag-et, ami egyfajta fájlverziót jelent (pl. egy CRC32 vagy MD5 hash a fájl tartalma alapján számítva).
    1) Amikor az oldalad először kéri el a szervertől a fájl tartalmát, a szerver visszaküldi az ETag-et.

    Request: GET /data HTTP/1.1 Response: HTTP/1.1 200 OK ETag: 12345 Content-Length: 1572 [tartalom]
    2) Minden további kérésnél a kliens elküldi az előző response-ban kapott ETag-et If-None-Match request headerként:

    Request: GET /data HTTP/1.1 If-None-Match: 12345
    A szerver újraszámolja a fájlverziót, és összehasonlítja a kliens által küldött verzióval. Ha a szerver által számított ETag és az If-None-Match megegyezik, akkor a szerver HTTP 304 Not Modified response-t küld:

    Response: HTTP/1.1 304 Not Modified
    Ha pedig eltér, akkor a szerver leküldi az új tartalmat az új ETag-gel:

    Response: HTTP/1.1 200 OK ETag: 12346 Content-Length: 3142 [új tartalom]
    Így tudsz egy kis adatmennyiséget spórolni, ami jól jön, ha például mobilneten nézik az oldalad.
    Mutasd a teljes hozzászólást!
  • Én socket szerverrel és socket klienssel oldanám meg a setInterval-os megoldás helyett. 

    De a legrosszabb esetben is a backend oldalon a táblázat helyett egy JSON-t készítenék a TXT fájlból és frontenden Fetch API - al hívnám (ha ragaszkodsz a setIntervalhoz). Ezzel legalább nem kellene az egész oldalt lefrissíteni, hanem csak azt a divet, amiben az aktuális adat kell.
    Mutasd a teljes hozzászólást!
  • Hello,
    csináltam egy mintakódot a data.txt felolvasására és html
    frissitésére aszinkron módon.  lásd a mellékletben.
    Csak akkor tölti fel  a táblázatot, ha új sor kerül a data.txt-be.
    nyilván ez csak egy váz, alap verzió, de amit írtál, azt elvileg lefedi.
    Nézd meg, hogy segít-e.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Szia, néztem amit küldtél, s annyit biztosan észre vettem, hogy nem vetted figyelembe, - mert nyilván nem elég egyértelműen fogalmazhattam - hogy a data.txt-ben csupán mindig csupán egyetlen sor van 6 adattal pontosvesszővel elválasztva, mert a szoftver nem listát készít, hanem mindig felülírja a benne lévő egyetlen sort az aktuálissal, csak ugye ezt tőlem független "random" időnként. Ezért kell kb. 5 másodpercenként lekérdezni a tartalmat és egyeztetni az előző lekért adattal, s ha csak már különbözik, akkor kellene az előtte megjelenített adatot kicserélni a frissre a honlapon megjelenített táblázatban.
    Mutasd a teljes hozzászólást!
  • Nos, most teszteltem amit küldtél...
    Szóval te pont a sorok növekedésére helyezted az ellenőrzést , s pont ez nem így van, ugyanis, mint írtam egyetlen egy sor van, s az íródik mindig felül a data.txt fájlban.
    A te readcsv.php fájlodban letudod így a sorra:

    <?php // read csv file $data_rows = array(); if (($handle = fopen("data.txt", "r")) !== false) { while (($data = fgetcsv($handle, 1000, " ; ")) !== false) { $data_rows[] = $data; } fclose($handle); } echo json_encode($data_rows); ?>
    Pedig csak egyetlen sor adatai vannak, melyek változnak. Én ezt meg innen kezdtem el megoldani:

    $open = fopen('data.txt','r'); while (!feof($open)) { $getTextLine = fgets($open); $explodeLine = explode(" ; ",$getTextLine); list($adat1,$adat2,$adat3,$adat4,$adat5,$adat6) = $explodeLine; echo "$adat6" ; } fclose($open);}
    s teszt képen ki írattam az utolsó, azaz 6. adatot.

    Valamint eltekintve attól, hogy te egy esetleges új sorra alapoztad a példádat, de az is valamiért nem működik megfelelően , mert kihagy adatot a megjelenítésnél és még fura sorrendben is tünteti fel amit megjelenít (az utolsó két sort meg én módosítottam teszt képen. De a lényeg a két első sor, hisz abban látszik, hogy adatkihagyás és felcserélés is van).
    képernyőkép a példáddal
    Minden esetre, én akkor is boldog vagyok, hogy még van ki valós segítségre törekszik, s nagyon szépen köszönöm is az eddigi idődet.
    Remélem folytathatjuk tovább a célig...
    Mutasd a teljes hozzászólást!
  • Jelenleg az egyetlen php fájlom úgy néz ki, hogy kiolvassa az adatokat az egyetlen sort tartalmazó txt fájlból és azt a böngészőben egy "stilizált" táblaszerkezetben meg is jeleníti.
    Ezek összesen 6db adatot tartalmaznak, mint: előadó ; zenecím ; album ; kiadás éve ; kiadó ; albumborító.png
    tehát 6 frissülő adat.
    ezt én eddig így oldottam meg:

    <?php $inputfile = file("data.txt"); $data_lines = array(); foreach ($inputfile as $line) { $data_lines[] = explode(" ; ", $line); } //Get column adatok $first_line = array(); foreach ($data_lines[0] as $dl) { $first_line[] = explode(" ; ", $dl); } $adat = array(); foreach ($first_line as $fl) { $adat[] = $fl[0]; } ?> <!DOCTYPE HTML> <html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta HTTP-EQUIV="Content-Language" content="hu"> <meta HTTP-EQUIV="pragma" content="no-cache"> <title>Rádió</title> <link rel="stylesheet" href="style.css"> <style type="text/css"> </style> <script language="javascript"> // Flooble.com's Animated Text script. Will animate a specified EGY SZÖVEGCICOMÁZÓS SCRIPT VAN, DE NEM RÉSZLETEZEM IDE </script> </head> <BODY onLoad=" animate('animate', '#66ccff'); " > <table id="tablazat" border="10" CELLPADDING=0 CELLSPACING=0 align="center" width="620" height="340" bgcolor="#6c1010"> <tr VALIGN=top> <td colspan="2" rowspan="2"><img src="images/1logoresz320x175.png" width="320" height="175" alt="logo"/></td> <td heigh="50" VALIGN=top><div id ="digital-clock"></div><script src = "script.js"></script></td> </tr> <tr> <td rowspan="7"><img src="<?php echo "Album-Art/$adat[5]"?>"<br></td> </tr> <tr class="text1"> <td bgcolor="#6c1010" height="30" rowspan="2" p class="fantazia"><SPAN ID="animate"><?php echo $adat[0] ?></SPAN></td> <td bgcolor="#6c1010" width="10" rowspan="6">&nbsp;</td> </tr> <tr> </tr> <tr class="text2"> <td bgcolor="#6c1010" height="60" p class="keziras"><?php echo $adat[1] ?></td> </tr> <tr height="20"> <td bgcolor="#6c1010" p class="talpas"><?php echo $adat[2] ?></td> </tr> <tr> <td bgcolor="#6c1010" p class="talpatlan"><?php echo $adat[3] ?> &#169; <?php echo $adat[4] ?></td> </tr> <tr> <td bgcolor="#6c1010">&nbsp;</td> </tr> </tbody> </table> <script> var counter = 5; // VISSZASZÁMLÁLÓ var count_down = window.setInterval(function () { counter--; if (counter >= 0) { var span; span = document.getElementById("display_counter"); span.innerHTML = counter; } if (counter === 0) { clearInterval(counter); } }, 500); var page_refress = window.setInterval('refresh()', 5000); // AZ OLDAL FRISSÍTÉSE, ÚJRATÖLTÉSE function refresh() { window.location.reload() ;} function stopFunction() { clearInterval(count_down); clearInterval(page_refress); } </script> </body> </html>
    Végülis a lényeg, hogy így a 6 adatot nem fix idejű oldalfrissítéssel szeretném frissíteni.
    Csupán a
    $adat[]
    tartalmait, amikor megváltoznak

    A végeredmény egyébként meg így néz ki.
    eredmény
    Mutasd a teljes hozzászólást!
  • Este ha lesz időm, megcsinálom socket szerverrel. 
    PHP ehhez full felesleges
    Mutasd a teljes hozzászólást!
  • Szia, icecast v2.4-es szerverre is ezen track adatokat küldi a szoftver, mely mellesleg sql adatbázissal dolgozik ám...
    Csupán az adatbázis utf8mb4_unicode_ci, plusz a táblák utf8_general_ci meg latin1_swedish_ci illesztések, s hiába hibátlanul vannak a magyar szövegek benne, sajnos már webes felületen a php fájlomban nem tudtam tisztességesen megjeleníteni az ékezetes karaktereket, mert a php szimpla utf8-nak veszi és akkor ott a BOM, s mivel dinamikusan frissülnek az adatok, ezt manuálisan nem lehet egy szimpla Notepad++-al elintézni.
    Mivel a szoftver egy txt-be is kiküldi, ahol szintén hibátlan, gondoltam onnan egyszerűbb megoldanom, ami meg is oldotta a karakterkódolási mizériát (így megkerülve ), csupán az adatfrissítésen nem tudok előrébb jutni.
    Az icecast szerverre meg annyi difivel küldi a szoftver a track adatokat, hogy az artist és a title neki a szimpla title, azaz a title neki valamiért úgy néz ki, hogy artist - title , pedig külön van meg adva minden. Szóval, ha onnan kellene lehúzni az adatokat, akkor ott van az artist (ami artist - title ; album ; year ; publisher ; image. De az is lehet, hogy jól van küldve és fogadva, csak ott így jelenik meg .
    De fogalmam sincs, hogy miért egyszerűbb úgy, ahogy te gondolod, mert egyszerűen nem tudom elképzelni, hisz egy honlapon kell mindenféleképpen megjeleníteni ezt a 6 adatot és a honlap eleve php.
    Annyit biztos nyernék vele, hogy nem kellene még ezt a data.txt -is létrehoznom a honlap szerverén és a tárhellyel vacakolnom, hogy oda tudja a szoftver frissíteni.
    Minden esetre némi reménnyel kecsegtetsz, bár működne már...
    Mutasd a teljes hozzászólást!
  • Szia,

    Akkor nézd a file modosulásának dátumát a filemtime() függvénnyel,tárold le adatbázisban , vagy egy txt-ben, és akkor frissitsd a táblázatot a weboldalon, ha van új adat a data.txt-ben.

    Mutasd a teljes hozzászólást!
  • El is készültem a socket server / kliens demóval.

    A cucc automatikusan generál 10 másodpercenként tartalmat a data.txt fájlba. (Például most ez van benne : "Album206, Year320, Arttist971, Song1018")

    A szerver ezt a fájlt figyeli. Ha változás történik, akkor a kliensnek, vagy klienseknek elküldi az információt. Tehát nem a kliens frissít X másodpercenként, hanem a szerver és a kliens között folyamatos kapcsolat van és a szerver értesít.

    Ezen az oldalon éred el a socket klienst (A container alszik, ha nincs használva. Első használat esetén várj pár másodpercet. A link megnyitásával automatikusan felébreszted a containert, utána már zsírul megy )
    SOCKET CLIENT

    Itt magát a data.txt-t éred el:
    Sandbox - CodeSandbox



    Itt pedig a szerver forráskód:
    FILE REFRESHER + SOCKET SERVER (forked) - CodeSandbox

    A client.html forráskód
    FILE REFRESHER + SOCKET SERVER (forked) - CodeSandbox

    A kliensoldali main.js forráskód

    FILE REFRESHER + SOCKET SERVER (forked) - CodeSandbox

    Ha további kérdésed van, nem tudod beintegrálni a saját cuccodba, akkor írj ide.
    Mutasd a teljes hozzászólást!
  • Szia, de azért nem kell ennyire megbonyolítani...

    Az pont jó lenne amit küldtél, azaz a lelke, hisz az valóban figyel adott másodpercenként, s csak akkor frissít, ha változott a tartalom. Csupán két gond van azzal...
    1. a te példád sorok mennyiségén alapul, pedig itt ez esetben csak egy sor van.
    2. a scripted szerintem valahonnan ollózott, ami teljesen mást csinál, azaz a küldött script egy táblában írja ki a pl. 6 adatot úgy, hogy adatonként 6 betűre szedve oszloponként egy betű, s azokat is felcserélve 6 adatot 6 sorban...Ennek semmi értelme.
    Viszont csak át kellene az alapján írni, amit én itt publikáltam.
    Mutasd a teljes hozzászólást!
  • Nem értem pontosan a problémádat, de csináltam egy kettes klienst, ami táblázatban és 6 sorban 2 oszlopban írja ki az adatokat. 

    SOCKET CLIENT

    Az ehhez tartozó main2.js (kliensoldali js) pedig ez:

    FILE REFRESHER + SOCKET SERVER (forked) - CodeSandbox
    Mutasd a teljes hozzászólást!
  • Holnap akár meg tudom oldani, hogy konkrét létező albumokat cserélgessen a frontenden.
    Mutasd a teljes hozzászólást!
  • Nem tudom, mire gondolsz.
    Ez itt egy fórum, ahol kérdezel valami konkrétat, akkor arra estleg valaki válaszol.
    Én csak hobbiból irtam egy programot, mert olyan rendes vagyok,úgy hogy egy data.txt-ét nem láttam, csak írtál valamit a müködésről.
    Mivel azt írtad, hogy a weboldalt kell frissiteni, azért raktam táblázatba és frissitem az oldal újratöltödése nélkül.
    Tehát ha arra utalsz, hogy  át kéne írni, akkor írd át,
    ha már azért azt csinálja, ami szerinted " azaz a lelke".
    Bocs, de helyetted senki nem fogja kulcsra készre megírni a programot,
    főleg, hogy nincs elég info.
    Mutasd a teljes hozzászólást!
  • Természetesen ha azt szeretné, hogy az ember kulcsrakészre csinálja, az fizetős szokott lenni. 

    Természetesen, a küldött demo értelmezésében bármikor segítek.
    Mutasd a teljes hozzászólást!
  • Szia, szerintem már az elején leírtam mindent világosan és elég szájbarágósan is.
    Amit küldtél az tuti nem erre készült, mert olyan dolgot művel, aminek semmi köze ahhoz amit kellene csináljon. Ez picit tréfás is volt számomra.
    Mutasd a teljes hozzászólást!
  • Szia, még ma éjjel megnézem, de már most megrémítesz azzal, hogy azt írod hat sor meg két oszlop...
    Minek?!
    Már nem is tudom hányszor írtam le itt, hogy egyetlen egy sor van, s benne egymás mellett 6 adat.
    Sosem lesz több sor, mert egyszerűen nem kell.
    Nem archiválni akarok, azaz listázni.
    Van hat adat amire szükségem van, s ez a 6 adat időnként megváltozik, azaz felülíródik, amit egy szoftver produkál.
    Ez az egy sor a hat adattal, egy data.txt fájlban egyetlen sorban egymás mellett pontosvesszővel vannak elválasztva.
    Ebből én ki tudom olvasni és trimmelni $data0 $data1 $data2 $data3 $data4 $data5, s ha a honlapon készítek egy táblát, vagy bármit, akkor tetszőlegesen oda teszem ezeket és formázom ahova akarom. A gond a frissítéssel van. Azaz azt szeretném, hogy csak ezen adatok frissüljenek frontend-en, s nem az egész honlap. Mivel ez egy rádiós honlaphoz kell, van icecast szervere is ahonnan be lehetne húzni az adatokat, de nekem az komplikált, s a probléma meg tulajdonképpen ugyan az lenne.
    Mutasd a teljes hozzászólást!
  • Ezt a válaszomat neked írtam, csak rossz helyre klikkeltem, mint címzet...
    "Szia, szerintem már az elején leírtam mindent világosan és elég szájbarágósan is.
    Amit küldtél az tuti nem erre készült, mert olyan dolgot művel, aminek semmi köze ahhoz amit kellene csináljon. Ez picit tréfás is volt számomra."
    Mutasd a teljes hozzászólást!
  • Bocsánat, de ezt az idézet szöveget nem neked szerettem volna küldeni, csak elklikkeltem...

    Szia, szerintem már az elején leírtam mindent világosan és elég szájbarágósan is. Amit küldtél az tuti nem erre készült, mert olyan dolgot művel, aminek semmi köze ahhoz amit kellene csináljon. Ez picit tréfás is volt számomra.

    Szóval még csak most olvastam el teljesen mindent amit itt írtál, s azt kell erre válaszolnom, hogy félreértetted.
    A szoftver egy rádiós szoftver ami félig meddig nyílt forráskódú, s annak is van egy tartalom generálós része ami precízen létrehozza a tartalmat az adott data.txt fájlban, mégpedig be lehet állítani, hogy folyamatosan felülírja az adatokat, vagy egymás alá töltse.
    De ezzel nekem nincs problémám és nem is írtam soha ilyet, mert ezt elvégzi a rádiós szoftver egy része.
    Én a rádiós szoftver által már feltöltött data.txt fájlból való adatkiolvasás és honlapon való megjelenítésnél akadok el azzal, hogy akkor frissüljön a honlapon az adat, mikor a rádiós szoftver frissíti a data.txt-ben lévő adatokat.
    Mutasd a teljes hozzászólást!
  • Azt értem, hogy nálad egy zenei szoftver frissíti a data.txt-t,de nálam ez a szoftver nincs meg, ezért készítettem egy olyan szimumációt, amiben random adatokkal töltöm fel a TXT-t. Ez neked értelemszerűen nem kell. 
    Este megcsinálom, hogy random adatok helyett valós zenei adatokkal töltse fel a TXT - t és ezt jelenítse meg. 
    A demó ott van a kezedben, ezt tudnád használni a rádiós szoftverrel is, mert ennek kb lényegtelen, hogy mi frissíti a data.txt-t. Lehetne akár kézzel is, azt is érzékelné.
    Mutasd a teljes hozzászólást!
  • Amit küldtél az tuti nem erre készült, mert olyan dolgot művel, aminek semmi köze ahhoz amit kellene csináljon


    Nem értem ezt a kijelentést. A szoftver amit készítettem pont azt csinálja, hogy adatokat jelenít meg a klienssen TXT-ből.
    Plusz ahogy írtam implementálnom kellett a data.txt frissítését is, de nekem ez csak az általad vázolt rádiós szoftvert szimulálja. 
    Este ezt is bekommentelem a kódban, hogy pontosan melyik rész az. Ez neked nem kell, mert neked más szoftver frissít.
    Mutasd a teljes hozzászólást!
  • Szia, az idézett szöveget nem neked írtam, s bocsánat, de éjjel már ezt is leírtam. Lett egy kis keveredés, mert ketten voltatok itt, s nekem meg nem éppen időrendben jelentek meg itt a dolgok... Közbe meg folyamatosan tanulok, azaz amit írtok arról kutatgatok, s olvasom szét a szemeimet, hogy fogalmam is legyen dolgokról, s közben, - mint ilyenkor lenni szokott - leragadok valamin, s nem csak az agyam száll el, de az idő is...
    Mutasd a teljes hozzászólást!
  • Értem. Az hasznos dolog, ha tanulnod és próbálod megérteni. 
    Az általam használt technológiák a socket.io
    https://socket.io/
    A Node.JS 
    Node.js
    A Fetch API
    JavaScript Fetch API Explained By Examples

    Ezeknek mind érdemes utánaolvasni és megtanulni a működésüket, ha szeretnéd jobban megérteni a folyamatokat, amik szükségesek egy ilyen zenei most játszott lista alkalmazás készítéséhez
    Mutasd a teljes hozzászólást!
  • Elkészültem a módosításokkal. Mostmár igazi zenéket ad ki a szerver és ezt küldi el bármely kliensre, ami csatlakozik a szerver által szolgáltatott sockethez.
    A kliens-ek 
    SOCKET CLIENT
    SOCKET CLIENT
    Egy másik kódmegosztóra is feltettem egy klienst
    https://codepen.io/bzozoo/full/YzYBZvB
    A kliens oldali JS:
    FILE REFRESHER + SOCKET SERVER v2 - CodeSandbox
    Ezek az adatok szerepelnek a data.txt-ben.
    Sandbox - CodeSandbox
    Itt az index.js fájlban megjelöltem azt a részt, ami a data.txt írását szimulálja. Ez nem kell abban az esetben, ha ezt a generálást egy másik szoftver végzi.
    FILE REFRESHER + SOCKET SERVER v2 - CodeSandbox
    Mutasd a teljes hozzászólást!
  • Igen, értem, és te sokkal komolyabb  kódot küldtél, mint én.
    Majd megoldodik a történet, én kiszáltam most ebből.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia, s nagyon sajnálom...
    Mutasd a teljes hozzászólást!
  • De mire gondolsz?, mit sajnálsz?
    én még mindig nem értem.
    és bocsánat, de hajrá!
    Mutasd a teljes hozzászólást!
  • Profi programozókkal beszélsz, akik hobbyból szeretnek segíteni. 20 éve ebből élünk, és nem értünk.
    Akkor mi van most? 
    Lehet, hogy elbeszélünk egymás mellett, bocs!
    Mutasd a teljes hozzászólást!
  • Szerintem L-beszélünk 1, s más mellett... Mindenesetre ne menjünk bele még egyszer, mert úgy sem változtat a tényen. A lényeg, hogy nekem sem lovam, sem zsiráfom nincs, hogy onnan leszóljak, de ha te profinak nevezed magad rendben van elfogadom, s tiszteletben is tartom... De te is tartsd tiszteletben azt, hogy másnak erről más a véleménye.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd