{"id":1777,"date":"2025-02-19T13:57:58","date_gmt":"2025-02-19T13:57:58","guid":{"rendered":"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/"},"modified":"2025-02-19T13:57:58","modified_gmt":"2025-02-19T13:57:58","slug":"pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms","status":"publish","type":"post","link":"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/","title":{"rendered":"Pagrindinis \u017einiatinklio lizdo diegimas realiojo laiko plazd\u0117jimo programoms"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><span data-contrast=\"none\">Komunikacija realiuoju laiku tapo \u0161iuolaikini\u0173 program\u0173 kertiniu akmeniu \u0161iandieniniame spar\u010diai populiar\u0117jan\u010diame skaitmeniniame pasaulyje. Vartotojai tikisi skland\u017ei\u0173, momentini\u0173 atnaujinim\u0173, tiesiogini\u0173 pokalbi\u0173, momentini\u0173 prane\u0161im\u0173 ar bendradarbiavimo \u012franki\u0173. <\/span><\/p>\n<p><span data-contrast=\"none\">\u010cia pradedami \u201eWebSockets\u201c. Skirtingai nuo tradicini\u0173 HTTP u\u017eklaus\u0173, \u201eWebSockets\u201c u\u017emezga nuolatin\u012f, dvikrypt\u012f kliento ir serverio ry\u0161\u012f, \u012fgalindami realaus laiko keitim\u0105si su minimaliu v\u0117lavimu.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">\u201eWebSockets\u201c \u012fgyvendinimas atveria \u012fdomias \u201eFlutter\u201c k\u016br\u0117j\u0173 galimybes kurti dinami\u0161k\u0105 ir \u012ftraukian\u010di\u0105 vartotoj\u0173 patirt\u012f. <\/span><\/p>\n<p><span data-contrast=\"none\">\u0160iame tinklara\u0161tyje mes i\u0161tirsime, kaip nustatyti ir naudoti \u201eWebSockets\u201c <strong>Plekni\u0173 program\u0173 k\u016brimas<\/strong>nuo ry\u0161i\u0173 u\u017emezgimo iki duomen\u0173 sraut\u0173 tvarkymo ir j\u016bs\u0173 programos u\u017etikrinimo, kad j\u016bs\u0173 programa i\u0161liks reaguojanti ir atnaujinama.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Turinys:<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Supratimas_apie_ziniatinklio_rinkinius\" >Supratimas apie \u017einiatinklio rinkinius<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Kas_yra_%E2%80%9EWebSockets%E2%80%9C\" >Kas yra \u201eWebSockets\u201c?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#%E2%80%9EWebSockets%E2%80%9C_pranasumai\" >\u201eWebSockets\u201c prana\u0161umai:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Naudokite_atvejus_plazdedami\" >Naudokite atvejus plazd\u0117dami:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#%E2%80%9EWebSocket%E2%80%9C_nustatymas_%E2%80%9EFlutter%E2%80%9C_programu_kurime\" >\u201eWebSocket\u201c nustatymas \u201eFlutter\u201c program\u0173 k\u016brime<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Butinos_salygos\" >B\u016btinos s\u0105lygos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Pridedant_priklausomybes\" >Pridedant priklausomybes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Kliento_puses_kodo_nustatymas\" >Kliento pus\u0117s kodo nustatymas<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Kodo_paaiskinimas\" >Kodo paai\u0161kinimas:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Duomenu_srautu_tvarkymas_plazdejimo_valdikliuose\" >Duomen\u0173 sraut\u0173 tvarkymas plazd\u0117jimo valdikliuose<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Kodo_paaiskinimas-2\" >Kodo paai\u0161kinimas:<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#%E2%80%9EWebSocket%E2%80%9C_rysiu_uztikrinimas\" >\u201eWebSocket\u201c ry\u0161i\u0173 u\u017etikrinimas<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Naudojant_wss_saugiems_rysiams\" >Naudojant wss: \/\/ saugiems ry\u0161iams<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Serverio_saugos_konfiguracijos\" >Serverio saugos konfig\u016bracijos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Testavimas_ir_derinimas\" >Testavimas ir derinimas<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Naudojant_irankius_testavimui\" >Naudojant \u012frankius testavimui:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Derinimas_su_plazdejimu\" >Derinimas su plazd\u0117jimu:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Imituokite_scenarijus\" >Imituokite scenarijus:<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/sekmesreceptai.lt\/index.php\/2025\/02\/19\/pagrindinis-ziniatinklio-lizdo-diegimas-realiojo-laiko-plazdejimo-programoms\/#Isvada\" >I\u0161vada<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Supratimas_apie_ziniatinklio_rinkinius\"><\/span><span id=\"Understanding_WebSockets\"><b><span data-contrast=\"none\">Supratimas apie \u017einiatinklio rinkinius<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Kas_yra_%E2%80%9EWebSockets%E2%80%9C\"><\/span><span id=\"What_are_WebSockets\"><strong>Kas yra \u201eWebSockets\u201c? <\/strong><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">\u201eWebSockets\u201c yra komunikacijos protokolas, \u012fgalinantis realiojo laiko, dvikrypt\u012f kliento ir serverio ry\u0161\u012f su vienu nuolatiniu ry\u0161iu. <\/span><\/p>\n<p><span data-contrast=\"none\">Skirtingai nuo HTTP, kuri yra pagr\u012fsta u\u017eklaus\u0173 ir atsakym\u0173 metu ir baigiasi po kiekvienos s\u0105veikos, \u201eWebSockets\u201c lieka atviros, leid\u017eian\u010dios nuolat keistis duomenimis, nesukuriant ry\u0161io.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E2%80%9EWebSockets%E2%80%9C_pranasumai\"><\/span><span id=\"Advantages_of_WebSockets\"><strong>\u201eWebSockets\u201c prana\u0161umai: <\/strong><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Suma\u017eintas latentinis:<\/span><\/b><span data-contrast=\"none\">  Greitesnis duomen\u0173 perdavimas, nes ry\u0161ys i\u0161lieka atviras.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Nuolatinis ry\u0161ys:<\/span><\/b><span data-contrast=\"none\">  Nereikia pakartotinai i\u0161 naujo prisijungti prie nauj\u0173 duomen\u0173.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Efektyvus bendravimas: <\/span><\/b><span data-contrast=\"none\">Tinka realiojo laiko programoms, kuriose kei\u010diamasi dideliais duomenimis.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Naudokite_atvejus_plazdedami\"><\/span><span id=\"Use_Cases_in_Flutter\"><strong>Naudokite atvejus plazd\u0117dami: <\/strong><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Realaus laiko pokalbi\u0173 programos: <\/span><\/b><span data-contrast=\"none\">Momentinis prane\u0161imo pristatymas ir kvitas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Akcij\u0173 rinkos ar sporto atnaujinimai: <\/span><\/b><span data-contrast=\"none\">Tiesioginiai dinamini\u0173 duomen\u0173 atnaujinimai.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"3\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Keli\u0173 \u017eaid\u0117j\u0173 \u017eaidimai:<\/span><\/b><span data-contrast=\"none\">  Sinchronizuojant \u017eaidim\u0105 tarp \u017eaid\u0117j\u0173 realiuoju laiku.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <br \/><\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9EWebSocket%E2%80%9C_nustatymas_%E2%80%9EFlutter%E2%80%9C_programu_kurime\"><\/span><span id=\"Setting_Up_WebSocket_in_Flutter_App_Development\"><b><span data-contrast=\"none\">\u201eWebSocket\u201c nustatymas \u201eFlutter\u201c program\u0173 k\u016brime<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Butinos_salygos\"><\/span><span id=\"Prerequisites\"><b><span data-contrast=\"none\">B\u016btinos s\u0105lygos<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">Prie\u0161 pasinerdami \u012f \u201eWebSocket\u201c diegim\u0105, \u012fsitikinkite, kad turite:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ol>\n<li><span data-contrast=\"none\">Pagrindinis plazd\u0117jimo ir smiginio supratimas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<li><span data-contrast=\"none\">\u017dinios apie \u201eWebSocket\u201c serverio nustatym\u0105 naudojant \u201eBackend\u201c technologij\u0105, pavyzd\u017eiui, <strong>Node.js<\/strong>\u201ePython\u201c ar bet kuri \u017einiatinklio rinkinio palaikymo sistema. \u0160is serveris tvarkys gaunamus ry\u0161ius ir apdoros prane\u0161imus.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Pridedant_priklausomybes\"><\/span><span id=\"Adding_Dependencies\"><b><span data-contrast=\"none\">Pridedant priklausomybes<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">Mes naudosime \u201eWeb_Socket_Channel\u201c paket\u0105, kad naudotume \u017einiatinklio rinkinius plazdinime, supaprastindami \u201eWebSocket\u201c ry\u0161\u012f. Prid\u0117kite paket\u0105 prie savo <\/span><b><span data-contrast=\"none\">pubspec.yaml<\/span><\/b> <span data-contrast=\"none\">failas:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><b><span data-contrast=\"none\">priklausomyb\u0117s<\/span><\/b><span data-contrast=\"none\">:<\/span><br \/><span data-contrast=\"none\">  <\/span><b><span data-contrast=\"none\">Plok\u0161\u010diojimas<\/span><\/b><span data-contrast=\"none\">:<\/span><br \/><span data-contrast=\"none\">    <\/span><b><span data-contrast=\"none\">SDK<\/span><\/b><span data-contrast=\"none\">: Plok\u0161\u010diojimas<\/span><br \/><span data-contrast=\"none\">  <\/span><b><span data-contrast=\"none\">Web_Socket_Channel<\/span><\/b><span data-contrast=\"none\">: ^2.3.0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">Paleiskite \u201e\u201c<\/span><b><span data-contrast=\"none\">\u201eFlutter Pub\u201c<\/span><\/b><span data-contrast=\"none\">\u201eNor\u0117dami gauti priklausomybes.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">\u0160is paketas pateikia lengvai naudojam\u0105 API, skirt\u0105 \u201eWebSocket\u201c ry\u0161i\u0173 ir duomen\u0173 sraut\u0173 tvarkymui \u201eFlutter\u201c programose.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kliento_puses_kodo_nustatymas\"><\/span><span id=\"Setting_Up_the_Client-Side_Code\"><b><span data-contrast=\"none\">Kliento pus\u0117s kodo nustatymas                                      <\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">Nor\u0117dami \u012fdiegti \u201eWebSockets\u201c \u201eFlutter\u201c, turite u\u017emegzti ry\u0161\u012f, si\u0173sti prane\u0161imus ir klausytis atsakym\u0173. \u0160tai pavyzdys:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">\/\/main.dart<\/span><br \/><span data-contrast=\"none\">importuoti <\/span><b><span data-contrast=\"none\">\u201ePaketas: web_socket_channel\/web_socket_channel.dart\u201c<\/span><\/b><span data-contrast=\"none\">;<\/span><\/p>\n<p><b><span data-contrast=\"none\">tu\u0161tuma <\/span><\/b><span data-contrast=\"none\">pagrindinis () {<\/span><br \/><span data-contrast=\"none\">  <\/span><b><span data-contrast=\"none\">galutinis <\/span><\/b><span data-contrast=\"none\">kanalas = websocketchannel.connect (<\/span><br \/><span data-contrast=\"none\">    Uri.parse (<\/span><b><span data-contrast=\"none\">\u201eWSS: \/\/example.com\/socket\u201c<\/span><\/b><span data-contrast=\"none\">)<\/span><br \/><span data-contrast=\"none\">  );<\/span><\/p>\n<p><span data-contrast=\"none\">  kanalas.stream.listen ((prane\u0161imas) {<\/span><br \/><span data-contrast=\"none\">    spausdinti (<\/span><b><span data-contrast=\"none\">Gauta: <\/span><\/b><span data-contrast=\"none\">$ prane\u0161imas<\/span><b><span data-contrast=\"none\">\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">  });<\/span><\/p>\n<p><span data-contrast=\"none\">  kanalas.sink.add (<\/span><b><span data-contrast=\"none\">\u201eSveiki,\u201e WebSocket \u201c!\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">}<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Kodo_paaiskinimas\"><\/span><span id=\"Explanation_of_the_Code\"><b><span data-contrast=\"none\">Kodo paai\u0161kinimas:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><b><span data-contrast=\"none\">Importuokite \u201eWebSocketchannel\u201c paket\u0105<\/span><\/b><span data-contrast=\"none\">:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ol>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">Tai leid\u017eia naudoti \u201eWebSocket\u201c funkcijas savo programoje.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ol>\n<p><b><span data-contrast=\"none\">U\u017emegzkite ry\u0161\u012f:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">Websocketchannel.connect (Uri.Parse (&#8216;wss: \/\/example.com\/socket&#8217;)): jungiama prie \u201eWebSocket\u201c serverio nurodytame URI. Pakeiskite &#8216;wss: \/\/example.com\/socket&#8217; savo \u201eWebSocket\u201c serverio URL.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Klausymasis prane\u0161im\u0173<\/span><\/b><span data-contrast=\"none\">:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">kanalas. \u0160iame pavyzdyje gautos \u017einut\u0117s yra atspausdintos konsol\u0117je.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Siun\u010diant prane\u0161imus<\/span><\/b><span data-contrast=\"none\">:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"6\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">kanalas.sink.add (&#8216;Sveiki, \u201eWebSocket!\u201c): Siun\u010dia prane\u0161im\u0105 \u201eWebSocket\u201c serveriui.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Duomenu_srautu_tvarkymas_plazdejimo_valdikliuose\"><\/span><span id=\"Handling_Data_Streams_in_Flutter_Widgets\"><b><span data-contrast=\"none\">Duomen\u0173 sraut\u0173 tvarkymas plazd\u0117jimo valdikliuose      <\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">Nor\u0117dami parodyti \u201eWebSocket\u201c prane\u0161imus savo programoje, naudokite \u201eFlutter&#8217;s\u201c <\/span><span data-contrast=\"none\">Srautas <\/span><span data-contrast=\"none\">valdiklis, kuris klausosi duomen\u0173 sraut\u0173 ir atitinkamai atnaujina vartotojo s\u0105saj\u0105.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">Srautas<\/span><span data-contrast=\"none\">(<\/span><br \/><span data-contrast=\"none\">  Srautas: kanalas.stream,<\/span><br \/><span data-contrast=\"none\">  statybininkas: (kontekstas, momentinis vaizdas) {<\/span><br \/><span data-contrast=\"none\">    <\/span><b><span data-contrast=\"none\">jei <\/span><\/b><span data-contrast=\"none\">(Snapshot.<\/span><b><span data-contrast=\"none\">Hasdata<\/span><\/b><span data-contrast=\"none\">) {{<\/span><br \/><span data-contrast=\"none\">      <\/span><b><span data-contrast=\"none\">gr\u012f\u017eti <\/span><\/b><span data-contrast=\"none\">Tekstas<\/span><span data-contrast=\"none\">(<\/span><b><span data-contrast=\"none\">Gauta: <\/span><\/b><span data-contrast=\"none\">$ {Snapshot.<\/span><b><span data-contrast=\"none\">duomenys<\/span><\/b><span data-contrast=\"none\">}<\/span><b><span data-contrast=\"none\">\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">    } <\/span><b><span data-contrast=\"none\">dar jei <\/span><\/b><span data-contrast=\"none\">(Snapshot.<\/span><b><span data-contrast=\"none\">haserror<\/span><\/b><span data-contrast=\"none\">) {{<\/span><br \/><span data-contrast=\"none\">      <\/span><b><span data-contrast=\"none\">gr\u012f\u017eti <\/span><\/b><span data-contrast=\"none\">Tekstas<\/span><span data-contrast=\"none\">(<\/span><b><span data-contrast=\"none\">&#8216;Klaida: <\/span><\/b><span data-contrast=\"none\">$ {Snapshot.<\/span><b><span data-contrast=\"none\">klaida<\/span><\/b><span data-contrast=\"none\">}<\/span><b><span data-contrast=\"none\">\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">    }<\/span><br \/><span data-contrast=\"none\">    <\/span><b><span data-contrast=\"none\">gr\u012f\u017eti <\/span><\/b><span data-contrast=\"none\">\u201eCircularProgressIndicator\u201c<\/span><span data-contrast=\"none\">();<\/span><br \/><span data-contrast=\"none\">  },<\/span><br \/><span data-contrast=\"none\">);<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<h4><span class=\"ez-toc-section\" id=\"Kodo_paaiskinimas-2\"><\/span><span id=\"Explanation_of_the_Code1\"><b><span data-contrast=\"none\">Kodo paai\u0161kinimas:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><b><span data-contrast=\"none\">Srauto ry\u0161ys:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">Srautas: kanalas.Sreitas<\/span><span data-contrast=\"none\">: Jungiasi <\/span><span data-contrast=\"none\">Srautas <\/span><span data-contrast=\"none\">\u012f <\/span><span data-contrast=\"none\">\u201eWebSocket\u201c<\/span><span data-contrast=\"none\">  Srautas klausytis gaunam\u0173 duomen\u0173.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Duomen\u0173 tvarkymas:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">\u201eSnapshot.hasdata\u201c<\/span><span data-contrast=\"none\">: <\/span><span data-contrast=\"none\">Patikrinkite, ar yra duomen\u0173. Jei taip, tai rodo<\/span> <span data-contrast=\"none\">prane\u0161imas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"2\"><span data-contrast=\"none\">Snapshot.Haserror<\/span><span data-contrast=\"none\">: <\/span><span data-contrast=\"none\">Patikrinkite, ar sraute yra klaida, ir rodomas klaidos prane\u0161imas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><b><span data-contrast=\"none\">Pakrovimo b\u016bsena:<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"o\" data-font=\"Symbol\" data-listid=\"7\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-1,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(9675),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"2\"><span data-contrast=\"none\">Pagal numatytuosius nustatymus, <\/span><span data-contrast=\"none\">\u201eCircularProgressIndicator\u201c ()<\/span> <span data-contrast=\"none\">parodytas tol, kol bus gauti duomenys arba \u012fvyks klaida.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%E2%80%9EWebSocket%E2%80%9C_rysiu_uztikrinimas\"><\/span><span id=\"Securing_WebSocket_Connections\"><b><span data-contrast=\"none\">\u201eWebSocket\u201c ry\u0161i\u0173 u\u017etikrinimas<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"none\">\u201eWebSocket\u201c jungtys, kaip ir bet koks tinklo ry\u0161ys, reikia apsaugoti, kad apsaugotum\u0117te duomenis ir u\u017ekirst\u0173 keli\u0105 neteis\u0117tai prieigai. \u0160tai kaip u\u017etikrinti saug\u0173 \u201eWebSocket\u201c diegim\u0105:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Naudojant_wss_saugiems_rysiams\"><\/span><span id=\"Using_wss_for_Secure_Connections\"><b><span data-contrast=\"none\">Naudojant wss: \/\/ saugiems ry\u0161iams<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">WSS: \/\/ protokolas yra saugus ws: \/\/, pana\u0161iai kaip HTTPS, yra HTTP.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><span data-contrast=\"none\">Jis u\u017e\u0161ifruoja \u201eWebSocket\u201c ry\u0161\u012f naudojant SSL\/TLS, u\u017etikrinant <strong>Duomen\u0173 vientisumas<\/strong> ir konfidencialumas perdavimo metu.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"10\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\"><span data-contrast=\"none\">Visada naudokite WSS: \/\/ gamybos aplinkoje, ypa\u010d kai yra neskelbtin\u0173 duomen\u0173, toki\u0173 kaip vartotojo kredencialai, finansin\u0117s operacijos ar asmenin\u0117 informacija.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"none\">\/*<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<p><b><span data-contrast=\"none\">galutinis <\/span><\/b><span data-contrast=\"none\">kanalas = websocketchannel.connect (<\/span><br \/><span data-contrast=\"none\">  Uri.<\/span><i><span data-contrast=\"none\">parse<\/span><\/i><span data-contrast=\"none\">(<\/span><b><span data-contrast=\"none\">\u201eWSS: \/\/secure-example.com\/socket\u201c<\/span><\/b><span data-contrast=\"none\">)<\/span><br \/><span data-contrast=\"none\">); <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559685&quot;:360,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">*\/<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Serverio_saugos_konfiguracijos\"><\/span><span id=\"Server-Side_Security_Configurations\"><b><span data-contrast=\"none\">Serverio saugos konfig\u016bracijos<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span data-contrast=\"none\">\u012e savo \u201eWebSocket Connection\u201c u\u017eklausos antra\u0161tes klientai turi \u012ftraukti autentifikavimo \u017eenkl\u0105 (pvz., JWT) arba kaip u\u017eklausos parametr\u0105.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">Tai u\u017etikrina, kad tik \u012fgalioti vartotojai gali u\u017emegzti ry\u0161\u012f<\/span><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p>galutinis <strong>kanalas = websocketchannel.connect (Uri.Parse (&#8216;wss: \/\/secure-example.com\/socket? Token = yourAuthtoken&#8217;); <\/strong><\/p>\n<p><span data-contrast=\"none\">Konfig\u016bruokite \u201eWebSocket\u201c server\u012f naudodami galiojant\u012f SSL\/TLS sertifikat\u0105, kad \u012fgalintum\u0117te u\u017e\u0161ifruot\u0105 ry\u0161\u012f.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">\u012ediekite greit\u012f, ribojant\u012f, kad b\u016bt\u0173 i\u0161vengta paslaug\u0173 neigimo (DOS) atak\u0173, kurias sukelia per dideli ry\u0161io u\u017eklausos.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">Nustatykite tu\u0161\u010diosios eigos ar neaktyvi\u0173 ry\u0161i\u0173 skirtumus, kad suma\u017eintum\u0117te serverio apkrov\u0105 ir suma\u017eintum\u0117te rizik\u0105 i\u0161 apleist\u0173 sesij\u0173.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"12\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Kry\u017eminio kilm\u0117s i\u0161tekli\u0173 dalijimasis (CORS):<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"none\">Apriboti leid\u017eiam\u0105 serverio kilm\u0119, kad b\u016bt\u0173 i\u0161vengta neteis\u0117tos prieigos i\u0161 nepatikim\u0173 \u0161altini\u0173<\/span><b><span data-contrast=\"none\">.<\/span><\/b><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Testavimas_ir_derinimas\"><\/span><span id=\"Testing_and_Debugging\"><b><span data-contrast=\"none\">Testavimas ir derinimas<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol start=\"1\">\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Naudojant_irankius_testavimui\"><\/span><span id=\"Using_Tools_for_Testing\"><b style=\"color: #464646; font-size: 26px;\"><span data-contrast=\"none\">Naudojant \u012frankius testavimui:<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ol>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"14\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Postmanas:<\/span><\/b><span data-contrast=\"none\">  I\u0161bandykite \u201eWebSocket\u201c ry\u0161ius, si\u0173sdami prane\u0161imus \u012f savo server\u012f ir steb\u0117dami atsakymus. \u201ePostman\u201c palaiko \u201eWebSocket\u201c testavim\u0105 pagal \u201enauj\u0105\u201c u\u017eklausos tip\u0105.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"14\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\"><b><span data-contrast=\"none\">Nar\u0161ykl\u0117s k\u016br\u0117jo \u012frankiai:<\/span><\/b><span data-contrast=\"none\">  Naudokite <\/span><b><span data-contrast=\"none\">Tinklas<\/span><\/b><span data-contrast=\"none\">  Skirtukas K\u016br\u0117jo \u012frankiuose, skirtuose steb\u0117ti \u201eWebSocket\u201c r\u0117mus, prane\u0161imus ir ry\u0161io informacij\u0105 <strong>Plaudimo program\u0173 k\u016brimo paslaugos<\/strong>.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<ol start=\"2\">\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Derinimas_su_plazdejimu\"><\/span><span id=\"Debugging_in_Flutter\"><b><span data-contrast=\"none\">  Derinimas su plazd\u0117jimu:<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ol>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"15\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">Naudoti <\/span><span data-contrast=\"none\">derinimo spausdinimas<\/span><span data-contrast=\"none\">  Nor\u0117dami registruoti \u201eWebSocket\u201c prane\u0161imus ir ry\u0161io \u012fvykius:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"none\">kanalas.stream.listen ((prane\u0161imas) {<\/span><br \/><span data-contrast=\"none\">  derinimo spausdinimas (<\/span><b><span data-contrast=\"none\">Gauta: <\/span><\/b><span data-contrast=\"none\">$ prane\u0161imas<\/span><b><span data-contrast=\"none\">\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">});<\/span><br \/><span data-contrast=\"none\">kanalas.sink.add (<\/span><b><span data-contrast=\"none\">\u201eSveiki,\u201e WebSocket \u201c!\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><br \/><span data-contrast=\"none\">  derinimo spausdinimas (<\/span><b><span data-contrast=\"none\">\u201ePrane\u0161imas i\u0161si\u0173stas: Sveiki,\u201e WebSocket \u201c!\u201c<\/span><\/b><span data-contrast=\"none\">);<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559685&quot;:360,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <\/span><\/p>\n<ol start=\"3\">\n<li>\n<h3><span class=\"ez-toc-section\" id=\"Imituokite_scenarijus\"><\/span><span id=\"Simulate_Scenarios\"><b><span data-contrast=\"none\">  Imituokite scenarijus:<\/span><\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ol>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"16\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:(8226),&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;multilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\">I\u0161bandykite skirtingas s\u0105lygas, tokias kaip ry\u0161io la\u0161ai, netinkami prane\u0161imai ir i\u0161 naujo sujungimo strategijos, kad b\u016bt\u0173 u\u017etikrintas tvirtumas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"none\">Efektyvus testavimas ir registravimas leid\u017eia lengviau nustatyti ir i\u0161spr\u0119sti problemas, pagerinant bendr\u0105 j\u016bs\u0173 \u201eWebSocket\u201c diegimo patikimum\u0105<\/span><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Isvada\"><\/span><span id=\"Conclusion\"><b><span data-contrast=\"none\">I\u0161vada<\/span><\/b><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:299,&quot;335559739&quot;:299}\"> <\/span><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span data-contrast=\"none\">\u201eWebSockets\u201c vaidina lemiam\u0105 vaidmen\u012f kuriant realaus laiko programas, \u012fgalinant greit\u0105, efektyv\u0173 ir nuolatin\u012f klient\u0173 ir serveri\u0173 bendravim\u0105. <\/span><\/p>\n<p><span data-contrast=\"none\">Nesvarbu, ar kuriate pokalbi\u0173 programas, tiesioginius sporto atnaujinimus ar keli\u0173 \u017eaid\u0117j\u0173 \u017eaidimus, \u201eWebSockets\u201c u\u017etikrina vientis\u0105 vartotojo patirt\u012f, turin\u010di\u0105 minimal\u0173 dels\u0105.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-contrast=\"none\">Kaip plazd\u0117jimo k\u016br\u0117jas, \u201eWebSocket\u201c diegimo \u012fvaldymas gali atrakinti \u012fdomias dinamini\u0173 ir interaktyvi\u0173 program\u0173 funkcij\u0173 galimybes. <\/span><\/p>\n<p><span data-contrast=\"none\">Lengvai integracijos ir galing\u0173 \u012franki\u0173, \u012ftraukiant \u017einiatinklio rinkinius \u012f savo \u201eFutter\u201c program\u0173 k\u016brimo projektus, yra naudingas \u017eingsnis kuriant reaguojan\u010dias ir \u012ftraukian\u010dias programas.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559740&quot;:240}\"> <\/span><\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335557856&quot;:16777215,&quot;335559739&quot;:0,&quot;335559740&quot;:240,&quot;469777462&quot;:(916,1832,2748,3664,4580,5496,6412,7328,8244,9160,10076,10992,11908,12824,13740,14656),&quot;469777927&quot;:(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),&quot;469777928&quot;:(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)}\"> <span class=\"TextRun SCXW109783896 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW109783896 BCX8\">Jei jums reikia papildomos pagalbos pl\u0117tojant program\u0105, galite susisiekti su mumis <\/span><\/span><strong><span class=\"TextRun Underlined SCXW109783896 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW109783896 BCX8\" data-ccp-charstyle=\"Hyperlink\"><span class=\"__cf_email__\" data-cfemail=\"9af3f4fcf5dae2fbecf5e8b4f9f5f7\">(El. Pa\u0161tas apsaugotas)<\/span><\/span><\/span><\/strong><span class=\"TextRun SCXW109783896 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW109783896 BCX8\">  . Mes suplanuosime nemokam\u0105 konsultacij\u0173 sesij\u0105, kad i\u0161tirtume, kaip \u201eXavor\u201c gali <\/span><span class=\"NormalTextRun SCXW109783896 BCX8\">pad\u0117ti<\/span><span class=\"NormalTextRun SCXW109783896 BCX8\">  tu.<\/span><\/span><span class=\"EOP SCXW109783896 BCX8\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\"> <\/span><\/span><\/p>\n<\/p><\/div>\n<p><script>\n!function(f,b,e,v,n,t,s)\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\nn.queue=();t=b.createElement(e);t.async=!0;\nt.src=v;s=b.getElementsByTagName(e)(0);\ns.parentNode.insertBefore(t,s)}(window, document,'script',\n'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\nfbq('init', '688143682758843');\nfbq('track', 'PageView');\n<\/script><br \/>\n<br \/><br \/>\n<br \/><a href=\"https:\/\/www.xavor.com\/blog\/mastering-web-socket-implementation-in-flutter-app-development\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Komunikacija realiuoju laiku tapo \u0161iuolaikini\u0173 program\u0173 kertiniu akmeniu \u0161iandieniniame spar\u010diai populiar\u0117jan\u010diame skaitmeniniame pasaulyje. Vartotojai tikisi&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1778,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3],"tags":[103,1749,3400,3399,3402,3403,3401,1379],"class_list":["post-1777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technologijos","tag-diegimas","tag-laiko","tag-lizdo","tag-pagrindinis","tag-plazdejimo","tag-programoms","tag-realiojo","tag-ziniatinklio"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/posts\/1777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/comments?post=1777"}],"version-history":[{"count":0,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/posts\/1777\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/media\/1778"}],"wp:attachment":[{"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/media?parent=1777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/categories?post=1777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sekmesreceptai.lt\/index.php\/wp-json\/wp\/v2\/tags?post=1777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}