<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=63&amp;t=19728&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-09T17:14:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=63&amp;t=19728&amp;mode</id>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-12-09T17:14:00+01:00</updated>
<published>2017-12-09T17:14:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200262#p200262</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200262#p200262"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200262#p200262"><![CDATA[
Jeśli mówimy o tysiącach/milionach klientów to nikt się nie będzie bawił w ułomne rozwiązania typu WebSocket. Tylko postawi dedykowany serwer TCP i komunikację na socket,  którą się robiło juz ze 20 lat temu. W WebSocket można się pobawić, ale na lokalnym serwerze i zapewne tak jest zrobione w przypadku ww. Supli.<br />Jak myślicie na czym się opierają wszelkiej maści komunikatory, typu skype, gadulec, teamviewer?<br />Uprzedzając pytania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />To działa mniej więcej tak - klienci łączą się z serwerem operatora, jeżeli jeden z klientów ma publiczne ip, to zestawiane jest połączenie bezpośrednie, jeżeli nie to cała komunikacja odbywa się za pośrednictwem serwera. Ot, cała filozofia <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: wczoraj, o 17:14 ]</span></strong><br /><br /><div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent"><br />Podejrzewam że po necie zawsze może być mała zwłoka .<br /></div><br />Podejrzewam, że nie dłuższa niż kilkadziesiąt ms, niewiele dłużej niż ping.<br />O ile nie postawili serwera na Kamczatce <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Takie projekty są robione na wielu równoległych serwerach, czasem nawet w różnych rejonach świata, więc nie powinno być jakichś zauważalnych opóźnień.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 9 gru 2017, o 17:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-09T11:24:26+01:00</updated>
<published>2017-12-09T11:24:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200241#p200241</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200241#p200241"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200241#p200241"><![CDATA[
<div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent"><br />O websocket podawałem już linka<br />a tu kolejny<br /><!-- m --><a class="postlink" href="https://www.b4x.com/android/forum/threads/custom-websocket-based-push-framework.40272/" >https://www.b4x.com/android/forum/threa ... ork.40272/</a><!-- m --><br /></div><br />I to jest chyba to o co nam chodzi. Temat wzięty na tapetę do przestudiowania. Wielkie dzięki kisoft<br /><div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent"><br />tylko czy dla sterowania kilkoma przekaźnikami warto to robić ?.<br /></div><br />Kilka przekaźników na początek. Docelowo, jeśli to będzie kilka tysięcy/milionów (oby) klientów, to chyba najlepsze rozwiązanie.<br />Głownie chodzi o to, że nasze urządzenia będą zainstalowane w różnych sieciach u różnych klientów. Jedne sieci będą miały publiczne IP inne nie, więc najlepiej aby nie było potrzeby grzebać w routerze klienta aby np przekierować port. Jednocześnie chcieli byśmy aby aplikacje klientów na Androidzie mogły się komunikować w urządzeniami w ich sieci w miarę szybko.<br />Przekierowanie portów działa ale nie jest to rozwiązanie uniwersalne i nie będzie działać przy każdym połączeniu sieci lokalnej do internetu (u każdego klienta)<br />Także kisoft wielkie dzięki za nakierowanie na, jak się wydaje, właściwe rozwiązanie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 9 gru 2017, o 11:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-09T08:55:40+01:00</updated>
<published>2017-12-09T08:55:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200239#p200239</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200239#p200239"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200239#p200239"><![CDATA[
<div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent"><br />Problem jest taki że musimy mieć server przez który pójdzie info z apki na urządzenie i zwrotnie. Możemy postawić własny server na kompie albo wykorzystać zewnętrzny tylko czy dla sterowania kilkoma przekaźnikami warto to robić ?.<br /></div><br /><br />Już ustaliśmy, że zdajemy sobie sprawę z tego iż należy wykupić domenę i hosting. Jeśli chcemy mieć swoją aplikację. <br />Problemem nadal jest aby komunikacja działa natychmiastowo. WEBSocket wysyła nam info do serwera ale z serwera musi trafić jeszcze do sterownika i odwrotnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 9 gru 2017, o 08:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-12-08T15:26:36+01:00</updated>
<published>2017-12-08T15:26:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200205#p200205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200205#p200205"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200205#p200205"><![CDATA[
Chodziło mi o technologię WebSocket - to jest kanał dwukierunkowy między serwerem a klientami,  normalnie używa się go do wysyłania powiadomień. Muszę przyznać że sam muszę zgłębić temat do końca,  bo jakoś zawsze brakowało czasu na to <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Wysłane ze srajfona<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: dzisiaj, o 15:26 ]</span></strong><br /><br />hmm, już widzę że to może nie być takie proste :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 8 gru 2017, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-08T08:44:02+01:00</updated>
<published>2017-12-08T08:44:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200176#p200176</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200176#p200176"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200176#p200176"><![CDATA[
<div class="quotetitle">Harry napisał(a):</div><div class="quotecontent"><br />Dużo lepszym rozwiązaniem jest zastosowanie komunikacji na socketach, przez zwykłe http/s<br /></div><br />Harry co masz na myśli?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 8 gru 2017, o 08:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-12-06T22:52:22+01:00</updated>
<published>2017-12-06T22:52:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200122#p200122</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200122#p200122"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200122#p200122"><![CDATA[
Konfiguracja serwerów na ogół ma ograniczenia, np co do ilości maili z tego samego adresu, częstotliwości logowania itd.<br />Dużo lepszym rozwiązaniem jest zastosowanie komunikacji na socketach, przez zwykłe http/s<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 6 gru 2017, o 22:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-06T16:17:21+01:00</updated>
<published>2017-12-06T16:17:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200103#p200103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200103#p200103"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200103#p200103"><![CDATA[
Nie nie. <br />Chodzi dokladnie o cos takiego<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Przy komercyjnych systemach często nie potrzebne jest publiczne IP w kliencie, bo dostawca daje serwer &quot;przesiadkowy&quot;. Polega to na tym, że zarówno aplikacja, jak i urządzenie łączą się z tym serwerem. Tam się autoryzują i urządzenie podaje identyfikator. Jeżeli aplikacja chce coś od urządzenia to wysyła do serwera żądanie, które na podstawie identyfikatora urządzenia jest do niego przekierowywane. Przy takich rozwiązaniach obie strony łączą się typowo po protokole TCP - często przez szyfrowane połączenia, lub po VPNie.<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 6 gru 2017, o 16:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-06T13:47:45+01:00</updated>
<published>2017-12-06T13:47:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200094#p200094</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200094#p200094"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200094#p200094"><![CDATA[
Dziękuję, <br /><br />Tak o takie działanie nam chodzi. Zapytałem w serwisie SUPLI i jak na razie dostałem odpowiedź:<br /><br />&quot;<strong>Połączenie SSL(TCP)<br />Baza MySQL</strong>&quot; <br /><br />Napisałem kolejną wiadomość o możliwość szerszego wytłumaczenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 6 gru 2017, o 13:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-06T13:38:57+01:00</updated>
<published>2017-12-06T13:38:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200092#p200092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200092#p200092"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200092#p200092"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">zieleniewiak napisał(a):</div><div class="quotecontent">Napiszę mejla do tej firmy SUPLA może coś podpowiedzą jak to jest zrealizowane. <br />Chyba, że wystraszą się, że konkurencja im wzrośnie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div></div><br />Nie sądzę aby się podzielili tą informacją. Nie jest to na pewno rozwiązanie wymyślone przez nich więc informacje na pewno są do znalezienia w internecie. Trzeba tylko wiedzieć czego szukać prawda? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Jeśli chodzi o fragment kodu do wysyłania i odpytywania o dane to podparłem się chyba nawet jakimś wątkiem tutaj na forum. Niestety nie potrafię go odnaleźć.<br /><br />Wysłanie url:<br />[syntax=basic4gl]Sub AskForRouterIP<br />Dim wholestr As String<br />wholestr = &quot;http://&quot; &amp; sysDomain &amp; &quot;/sysdata.php?sysID=&quot; &amp; systemID<br />httpDownload.Download( wholestr )<br />End Sub[/syntax]<br /><br />Odebranie odpowiedzi:<br />[syntax=basic4gl]public Sub jobDone ( httpDownloadJob As HttpJob )<br />       <br />        '-------------pobranie  zakonczone sukcesem<br />        If httpDownloadJob.Success = True Then<br />               <br />                'sprawdzamy nazwę konkretnej zmiennej, bo może być ich kilka<br />                If httpDownloadJob.JobName = &quot;httpDownload&quot; Then<br />                       routerIP = httpDownloadJob.GetString<br />                        'wypisz w oknie zawartosc pliku ze strony<br />                        'Msgbox ( httpDownloadJob.GetString, &quot;Wykonanie skryptu:&quot; )<br />                End If<br /> <br />        'jezeli wystapil blad<br />        Else<br />                        'wypisz dane o bledzie<br />                        'Msgbox (&quot;Brak dostępu do internetu&quot; &amp;  CRLF &amp; &quot;Włącz Wi-Fi lub dane komórkowe&quot;, &quot;Błąd&quot; )<br />        End If<br /> <br />        'usuniecie zadania pobierania z internetu<br />        httpDownloadJob.Release<br /> <br />End Sub[/syntax]<br /><br />I jeszcze przy inicjalizacji:<br />[syntax=basic4gl]httpDownload.Initialize( &quot;httpDownload&quot;, Me )[/syntax]<br /><br />Tak jak wspomniałem wcześniej - to działa ale nie jest to to czego szukamy prawda?<br /><br />Rozwiązanie SUPLI było by idealne. Podobnie, z tego co wiem, działają systemy do minitoringu i wiele innych<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 6 gru 2017, o 13:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-06T12:52:50+01:00</updated>
<published>2017-12-06T12:52:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200087#p200087</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200087#p200087"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200087#p200087"><![CDATA[
<div class="quotetitle">zieleniewiak napisał(a):</div><div class="quotecontent"><br />W opcji w zapisem danych na serwerze zewnętrznych i odpytywaniem o dane przez drugą stronę było to  różnie pomiędzy 2 a 5 sekund. Przy odpytywaniu chyba co 2 sekundy. Jeśli odpytywałem częściej to nie bardzo chciało działać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />Pytałem głównie o tę opcje. 2 sekundy to jest za długo... Gdybyś mógł podesłać kod do tej opcji. Zobaczył bym jak to miałeś zrealizowane. <br /><br />Aktualnie mam sterowanie po UDP, ale przez zewnętrzne IP to czas jest niemalże natychmiastowy. <br />Napiszę mejla do tej firmy SUPLA może coś podpowiedzą jak to jest zrealizowane. <br />Chyba, że wystraszą się, że konkurencja im wzrośnie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 6 gru 2017, o 12:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-06T12:05:52+01:00</updated>
<published>2017-12-06T12:05:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200082#p200082</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200082#p200082"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200082#p200082"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent">Wykupienie serwera i domeny jest kosztowne.<br /></div><br /><br />Jeśli nie zależy nam na konkretnej nazwie domeny, to nie jest wcale drogie. Ja domenę z hostingiem wykupiłem za 15 zł na rok. Więc taniej wychodzi niż publiczne IP u operatorów. Ale masz rację można poszukać darmowego serwera. <br /></div><br />Ja bym może nie skupiał się nad kosztami. Zarówno ja jak i kolega Morcinek92 zdajemy sobie sprawę, że w przypadku rozwiązania którego szukamy niezbędny jest wykupiony hosting i zewnętrzna domena. To wiemy.<br />Nie wiemy natomiast jak z tym ruszyć. Kolega w pracy wspomniał, że na pewno chodzi mi o połączenie p2p. Miał rację? Czy to o co pytamy to będzie p2p?<br /><br /><div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />zieleniewiak: <br /><br />A jaki był mniej więcej czas od kliknięcia w aplikacji do fizycznej zmiany stanu stanu na porcie? to są mili sekundy ? sekundy ??<br /></div><br />Jeśli chodzi o czas reakcji to nie jestem pewien o które rozwiązanie Ci chodzi.<br /><br />Jeśli chodzi o opcję z przekierowaniem portów w routerze to było to, hm trudno określić, szybko, jakieś 100-200 ms.<br /><br />W opcji w zapisem danych na serwerze zewnętrznych i odpytywaniem o dane przez drugą stronę było to  różnie pomiędzy 2 a 5 sekund. Przy odpytywaniu chyba co 2 sekundy. Jeśli odpytywałem częściej to nie bardzo chciało działać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Aplikację programowałeś w B4A? Jeśli tak mógłbyś pokazać kod<br /></div><br />Tak aplikację pisałem w B4A. <br />O którą opcję Ci chodzi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 6 gru 2017, o 12:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-06T11:28:27+01:00</updated>
<published>2017-12-06T11:28:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200079#p200079</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200079#p200079"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200079#p200079"><![CDATA[
<div class="quotetitle">kisoft napisał(a):</div><div class="quotecontent"><br />Wykupienie serwera i domeny jest kosztowne.<br /></div><br /><br />Jeśli nie zależy nam na konkretnej nazwie domeny, to nie jest wcale drogie. Ja domenę z hostingiem wykupiłem za 15 zł na rok. Więc taniej wychodzi niż publiczne IP u operatorów. Ale masz rację można poszukać darmowego serwera. <br /><br />zieleniewiak: <br /><br />A jaki był mniej więcej czas od kliknięcia w aplikacji do fizycznej zmiany stanu stanu na porcie? to są mili sekundy ? sekundy ?? <br />Aplikację programowałeś w B4A? Jeśli tak mógłbyś pokazać kod<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 6 gru 2017, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-06T09:47:41+01:00</updated>
<published>2017-12-06T09:47:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200069#p200069</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200069#p200069"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200069#p200069"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Z tym, że koledze  <strong>zieleniewiak</strong> nie chodzi o gotowe serwisy. <br />Sam chciałby takie coś stworzyć. Też bym chciał ale nie mam wystarczającej wiedzy w tym zakresie jak na razie..<br /></div><br />Dokładnie.<br />Chodzi o podobne działanie jak np Skype gdzie serwer skype jest tylko potrzebny do nawiązania połączenie. Sama transmisja wideo odbywa się już bezpośrednio pomiędzy użytkownikami bodajże po UDP właśnie.<br />I wcale Ci użytkownicy nie muszą być w sieci z publicznym adresem IP.<br /><br /><div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Kiedyś próbowałem ale robiłem to prze MySQL. Procesor wysyłał dane np. co 30 sekund i poprzez skrypt PHP na serwerze zostały zapisane do bazy danych.  Następnie chciałem w B4A odczytywać po wejściu w aplikację ostatni records  z bazy, ale to mi się już nie udało..<br /></div><br />To akurat mi działało. Jako, że nie bardzo znam się na bazach danych to to zrobiłem to na pliku tekstowym.<br />Do tego celu musiałem &quot;liznąć&quot; pisania skryptów PHP i wyszło mi coś takiego:<br /><br />Jeden ksrypt &quot;andr.php&quot; wywołujemy z Androida poprzez: <a href="http://ba365.pl/andr.php?sysID=10001&amp;val=_MOD0170%20:0202:75"  class="postlink">http://ba365.pl/andr.php?sysID=10001&amp;val=_MOD0170%20:0202:75</a> aby dodać dane val i jednocześnie odczytać to co ewentualnie było pozostawione poprzez uC<br /><br />[syntax=php]&lt;?php<br /> <br />//---------------Pobranie zmiennych z adresu URL<br /> <br />//nazwa zmiennej - nazwa pliku<br />if ( isset( $_GET&#91; 'sysID' &#93; ) ) {<br />    $sysID = $_GET&#91;'sysID'&#93;;<br />} else $sysID =  &quot;NaN&quot;;<br /> <br /> <br />//wartość zmiennej - istnieje w przypadku zapisu do pliku<br />if ( isset( $_GET&#91; 'val' &#93; ) ) {<br />    $value = $_GET&#91;'val'&#93;;<br />    $tryb = 'z_o'; //tryb zapisu do pliku<br />} else  {<br />    $value =  &quot;NaN&quot;;<br />    $tryb = 'o_only'; //tryb odczytu z pliku<br />}<br /><br /> //*********************************************************************<br />//        Tworzenie katalogu w ktorym bedzi plik<br />//********************************************************************* <br />        //Jeżeli podana została nazwa &quot;sysID&quot;<br />        if ( $sysID != &quot;NaN&quot; ) <br />        {<br />              // sprawdzamy czy istnieje katalog 'users'<br />              if (!file_exists(&quot;users&quot;)) mkdir (&quot;users&quot;, 0777);<br />              // sprawdzamy czy istnieje katalog 'usysID'<br />              if (!file_exists(&quot;users/&quot;.$sysID)) mkdir (&quot;users/&quot;.$sysID, 0777);<br />        } <br />//*********************************************************************  <br />switch ( $tryb ) {<br />    //------------------- Zapis do pliku &quot;touc.php&quot;<br />    //------------------- i odczyt z pliku &quot;toandr.php&quot;&quot;<br />    case 'z_o': {<br /> <br />        //Jeżeli podana została nazwa &quot;sysID&quot;<br />        if ( $sysID != &quot;NaN&quot; ) {<br />        <br />            //tworzymy plik o nazwie jak w podanej zmiennej &quot;sysID&quot;<br />            $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;touc.txt&quot;, &quot;a&quot;); //otwieramy plik<br /> <br />            if (flock($plik, LOCK_EX)) <br />            { //blokujemy do zapisu<br />               //wczytujemy linie pliku do tablicy            <br />                fwrite($plik, $value.&quot;\n&quot;); //Zapisujemy wartość zmiennej<br />                flock($plik, LOCK_UN); //Zwalniamy blokadę<br />            } else echo &quot;NaN&quot;; //Błąd blokady pliku<br /> <br />            //zamykamy plik<br />            fclose($plik);<br />            <br />            <br />           //-------------------Odczyt z pliku &quot;toandr.php&quot;&quot;<br />             //sprawdzamy czy dany plik istnieje<br />           if ( file_exists( &quot;users/&quot;.$sysID.'/'.&quot;toandr.txt&quot; ) ) {<br />                //Wypisujemy wartość odczytanej zmiennej z pliku - pierwszy wiersz<br />                <br />                $zpliku = file( &quot;users/&quot;.$sysID.'/'.'toandr.txt' )&#91;0&#93;;<br />                $tablica = explode(&quot;,&quot;, $zpliku);<br />                $i=0;<br />                while ($tablica&#91;$i&#93;)<br />                {<br />                   echo   $tablica&#91;$i&#93;;<br />                   $i++;<br />                }    <br />            } else echo &quot;NaN&quot;; //Nie ma takiego pliku - zmiennej<br /><br />        } else echo &quot;NaN&quot;;<br /> <br />    } break;<br />    //-------------------Odczyt z pliku &quot;sysIDtoandr.php&quot;&quot;<br />    case 'o_only': {<br />        //sprawdzamy czy dany plik istnieje<br />        if ( file_exists( &quot;users/&quot;.$sysID.'/'.&quot;toandr.txt&quot; ) ) {<br />              $zpliku = file( &quot;users/&quot;.$sysID.'/'.'toandr.txt' )&#91;0&#93;;<br />              $tablica = explode(&quot;,&quot;, $zpliku);<br />              $i=0;<br />              while ($tablica&#91;$i&#93;) <br />              {<br />                 echo   $tablica&#91;$i&#93;;<br />                 $i++;<br />              } <br />        } else echo &quot;NaN&quot;; //Nie ma takiego pliku - zmiennej<br /> <br />    } break;<br />}[/syntax]<br /><br />Drugi skrypt wywoływane z uC poprzez: <a href="http://ba365.pl/uc.php?sysID=10001&amp;all=0&amp;val=00112233445566778899AABBCCDDEEFF"  class="postlink">http://ba365.pl/uc.php?sysID=10001&amp;all=0&amp;val=00112233445566778899AABBCCDDEEFF</a><br />aby przekazać swoje dane i odczytać to co zostawił Android<br /><br />[syntax=php]&lt;?php<br /> <br />//---------------Pobranie zmiennych z adresu URL<br /> <br />//nazwa zmiennej - nazwa pliku<br />if ( isset( $_GET&#91; 'sysID' &#93; ) ) {<br />    $sysID = $_GET&#91;'sysID'&#93;;<br />} else $sysID =  &quot;NaN&quot;;<br /> <br />//*********************************************************************<br />//        Zapis IP do pliku<br />//*********************************************************************<br /><br />        //Jeżeli podana została nazwa &quot;sysID&quot;<br />        if ( $sysID != &quot;NaN&quot; ) <br />        {<br />              // sprawdzamy czy istnieje katalog 'users'<br />              if (!file_exists(&quot;users&quot;)) mkdir (&quot;users&quot;, 0777);<br />              // sprawdzamy czy istnieje katalog 'usysID'<br />              if (!file_exists(&quot;users/&quot;.$sysID)) mkdir (&quot;users/&quot;.$sysID, 0777);<br />                       <br />              //tworzymy plik o nazwie jak w podanej zmiennej &quot;sysID&quot;<br />              $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;IP.txt&quot;, &quot;w&quot;); //Nadpisujemy plik<br />   <br />              if (flock($plik, LOCK_EX)) { //blokujemy do zapisu<br />                  fwrite($plik, $_SERVER&#91;'REMOTE_ADDR'&#93;); //Zapisujemy wartość zmiennej<br />                //  flock($plik, LOCK_UN); //Zwalniamy blokadę<br />              } else echo &quot;NaN&quot;; //Błąd blokady pliku<br />              //zamykamy plik<br />              fclose($plik);<br />        }<br /><br />//*********************************************************************<br />//        Zapis zmiennych do pliku<br />//********************************************************************* <br />//wartość zmiennej - istnieje w przypadku zapisu do pliku<br />$tryb = 'o_only'; // domyslnie tryb odczytu tylko<br /><br /><br />$val = &quot;NaN&quot;; <br />if ( isset( $_GET&#91; 'all' &#93; ) ) <br />{<br />    $all = $_GET&#91;'all'&#93;;  //all przechowuje pierwszy adres z pakietu 16 danych<br />    if ( isset( $_GET&#91; 'val' &#93; ) )<br />    {<br />        $val = $_GET&#91;'val'&#93;; //val przechowyje 16 kolejnych danych<br />        $tryb = 'z_o'; //tryb zapisu do pliku<br />    }<br />} <br /><br /><br />$val1 = &quot;NaN&quot;; <br />if ( isset( $_GET&#91; 'adr1' &#93; ) ) <br />{<br />    $adr1 = $_GET&#91;'adr1'&#93;;<br />    if ( isset( $_GET&#91; 'val1' &#93; ) )<br />    {<br />        $val1 = $_GET&#91;'val1'&#93;;<br />        $tryb = 'z_o'; //tryb zapisu do pliku<br />    }<br />} <br />$val2 = &quot;NaN&quot;;<br />if ( isset( $_GET&#91; 'adr2' &#93; ) ) <br />{<br />    $adr2 = $_GET&#91;'adr2'&#93;;<br />    if ( isset( $_GET&#91; 'val2' &#93; ) )<br />    {<br />        $val2 = $_GET&#91;'val2'&#93;;<br />        $tryb = 'z_o'; //tryb zapisu do pliku<br />    }   <br />} <br />$val3 = &quot;NaN&quot;;<br />if ( isset( $_GET&#91; 'adr3' &#93; ) ) <br />{<br />    $adr3 = $_GET&#91;'adr3'&#93;;<br />    if ( isset( $_GET&#91; 'val3' &#93; ) )<br />    {<br />        $val3 = $_GET&#91;'val3'&#93;;<br />        $tryb = 'z_o'; //tryb zapisu do pliku<br />    }  <br />} <br />$val4 = &quot;NaN&quot;;  <br />if ( isset( $_GET&#91; 'adr4' &#93; ) ) <br />{<br />    $adr4 = $_GET&#91;'adr4'&#93;;<br />    if ( isset( $_GET&#91; 'val4' &#93; ) )<br />    {<br />        $val4 = $_GET&#91;'val4'&#93;;<br />        $tryb = 'z_o'; //tryb zapisu do pliku<br />    }<br />} <br /><br />switch ( $tryb )<br />{<br />    //------------------- Zapis do pliku &quot;toandr.php&quot;<br />    //------------------- i odczyt z pliku &quot;touc.php&quot;&quot;<br />    case 'z_o': <br />    {<br />        //Jeżeli podana została nazwa &quot;sysID&quot;<br />        if ( $sysID != &quot;NaN&quot; ) <br />        {   <br />            //gdy plik nie istnieje to tworzymy nowy pusty plik wypelnieony zerami (1024+128 zer)<br />            if ( !file_exists( &quot;users/&quot;.$sysID.'/'.&quot;toandr.txt&quot; ) )<br />            {<br />              //tworzymy plik o nazwie jak w podanej zmiennej &quot;sysID&quot;<br />              $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;toandr.txt&quot;, &quot;w&quot;); //Nadpisujemy plik<br />   <br />              if (flock($plik, LOCK_EX)) { //blokujemy do zapisu<br />                  for ($i=0; $i&lt;(1024+160); $i++)<br />                  {<br />                      $tablica&#91;$i&#93; = &quot;00&quot;;<br />                  }<br />                  $zeroval = implode(&quot;,&quot;,$tablica);<br />                  fwrite($plik, $zeroval); //Zapisujemy wartość zmiennej<br />                  flock($plik, LOCK_UN); //Zwalniamy blokadę<br />              } else echo &quot;NaN&quot;; //Błąd blokady pliku<br />              //zamykamy plik<br />              fclose($plik);<br />            }<br />            else<br />            {<br />                //gdy plik istnieje to odczytujemy jego wartosc i wpisujemy do tablicy<br />                $zpliku = file( &quot;users/&quot;.$sysID.'/'.'toandr.txt' )&#91;0&#93;;<br />                $tablica = explode(&quot;,&quot;, $zpliku);<br />            }<br />        <br />            //******************************************************************************<br />            //******************************************************************************<br />            //do istniejacego lub utworzonego powyzej pliku zapisujemy odebrane zmienne<br />            //tworzymy plik o nazwie jak w podanej zmiennej &quot;sysID&quot;<br />            $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;toandr.txt&quot;, &quot;w&quot;); //Nadpisujemy plik    <br />            <br />            if ($val != &quot;NaN&quot;)<br />            {<br />              //odczytujemy po dwa znaki hex<br />              for ($i = 0; $i &lt;16; $i ++)<br />              {    //zapisujemy 16 elementow tablicy ze stringa 32 znakowego<br />                   //2 znaki hex to jeden bajt<br />                   if (strlen(substr($val, $i*2, 2)) &lt;2)<br />                   {<br />                      $tablica&#91;hexdec($all)+$i&#93; = &quot;00&quot;;<br />                   }<br />                   else $tablica&#91;hexdec($all)+$i&#93; = substr($val, $i*2, 2);<br />              }<br />            }        <br />                <br />            <br />            if ($val1 != &quot;NaN&quot;)<br />            {<br />              if(strlen($val1) &lt; 2)  $tablica&#91;hexdec($adr1)&#93; = &quot;0&quot;.$val1;<br />              else $tablica&#91;hexdec($adr1)&#93; = $val1;<br />            } <br />            if ($val2 != &quot;NaN&quot;)<br />            {<br />              if(strlen($val2) &lt; 2)  $tablica&#91;hexdec($adr2)&#93; = &quot;0&quot;.$val2;<br />              else $tablica&#91;hexdec($adr2)&#93; = $val2;<br />            } <br />            if ($val3 != &quot;NaN&quot;)<br />            {<br />              if(strlen($val3) &lt; 2)  $tablica&#91;hexdec($adr3)&#93; = &quot;0&quot;.$val3;<br />              else $tablica&#91;hexdec($adr3)&#93; = $val3;<br />            } <br />            if ($val4 != &quot;NaN&quot;)<br />            {<br />              if(strlen($val4) &lt; 2)  $tablica&#91;hexdec($adr4)&#93; = &quot;0&quot;.$val4;<br />              else $tablica&#91;hexdec($adr4)&#93; = $val4;<br />            } <br /><br />            $newval = implode(&quot;,&quot;,$tablica);<br /><br />             <br />           if (flock($plik, LOCK_EX)) { //blokujemy do zapisu<br />                fwrite($plik, $newval); //Zapisujemy wartość zmiennej<br />                flock($plik, LOCK_UN); //Zwalniamy blokadę<br />            } else echo &quot;NaN&quot;; //Błąd blokady pliku<br />            //zamykamy plik<br />            fclose($plik);<br />            <br />  <br />           //-------------------Odczyt z pliku &quot;sysIDtouc.php&quot;&quot;<br />            odczytpliku_do_uc($sysID);<br />  <br />        } else echo &quot;NaN&quot;;<br /> <br />    } break;<br />    //-------------------Odczyt z pliku &quot;sysIDtouc.php&quot;&quot;<br />    case 'o_only': <br />    {<br />       odczytpliku_do_uc($sysID);<br />    } break;<br />}<br /><br /><br /><br />function odczytpliku_do_uc($sysID)<br />{<br /><br />        //sprawdzamy czy dany plik istnieje<br />        if ( file_exists( &quot;users/&quot;.$sysID.'/'.&quot;touc.txt&quot; ) ) <br />        {<br />            //Wypisujemy wartość odczytanej zmiennej z pliku - pierwszy wiersz<br />            $zpliku =  file( &quot;users/&quot;.$sysID.'/'.'touc.txt' );          <br />            <br />            for ($i=0; $i &lt; 2; $i++)<br />            {<br />              if(strlen($zpliku&#91;0&#93;)&gt;0)<br />              {<br />                  echo  $zpliku&#91;0&#93;;<br />                  $iloscLini = count($zpliku);<br />                  for ($j=0; $j &lt; $iloscLini; $j++) <br />                  {<br />                      $dopliku&#91;$j&#93; = $zpliku&#91;$j+1&#93;; <br />                  }<br />                   $zpliku =  $dopliku;<br />              <br />              }<br />              else<br />              {<br />                  if ($i==0) echo &quot;NaN1&quot;; //tylko gdy caly plik jest pusty<br />                  break; <br />              } <br />            }<br />            <br />            //zapis pliku bez 4 pierwszych lini, ktore zostaly wyslane<br />            //najpierw kasujemy plik<br />             $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;touc.txt&quot;, &quot;w&quot;); //Nadpisujemy plik<br />              if (flock($plik, LOCK_EX))<br />              { //blokujemy do zapisu<br />                  fwrite($plik,&quot;&quot;); //Zapisujemy wartość zmiennej<br />                  flock($plik, LOCK_UN); //Zwalniamy blokadę<br />              } else echo &quot;NaN2&quot;; //Błąd blokady pliku<br />            //zamykamy plik<br />            fclose($plik);<br />             //zapisujemy plik na nowo ale tylko z pozostala czescia tabeli<br />             $plik = fopen(&quot;users/&quot;.$sysID.'/'.&quot;touc.txt&quot;, &quot;a&quot;); //otwieramy plik<br />              if (flock($plik, LOCK_EX)) <br />              { //blokujemy do zapisu<br />                 //wczytujemy linie pliku do tablicy  <br />                  $iloscLini = count($zpliku);<br />                  for ($j=0; $j &lt; $iloscLini; $j++) <br />                  {      <br />                       fwrite($plik, $zpliku&#91;$j&#93;); //Zapisujemy wartość zmiennej<br />                  }<br />                  <br />                  <br />                  flock($plik, LOCK_UN); //Zwalniamy blokadę<br />              } else echo &quot;NaN3&quot;; //Błąd blokady pliku<br /> <br />            //zamykamy plik<br />            fclose($plik);<br />             <br />        } else echo &quot;NaN4&quot;; //Nie ma takiego pliku - zmiennej<br /><br />}[/syntax]<br /><br />Dane zapisywane są, jak już wspomniałem w pliku tekstowym. Każde dane w oddzielnej linii. Odczytywana jest zawsze &quot;najstarsza&quot; linia.<br /><br />Przepraszam za brak profesjonalizmu w powyższym kodzie ale była to moja pierwsza przygoda z php i jak na razie jedyna.<br /><br />Wadą tego rozwiązania jest to, że czas przekazania wiadomości pomiędzy uC i Androidem (lub odwrotnie) jest relatywnie długi. Wynika to z tego, że nie możemy przecież wysyłać zapytania url do serwera np 100 razy na sekundę aby odpytywać czy przypadkiem jakieś dane tam na nas czekają. Gdzie w znacznej większości zapytań odpowiedź będzie - brak danych NaN<br /><br />To rozwiązanie może i jest dobre ale nie dla rozwiązań typu sterowanie oświetleniem z Androida gdzie reakcja musi być &quot;natychmiastowa&quot;.<br /><br />Przekierowanie portów mogło by być dobre ale wymaga publicznego IP dla sieci w której zainstalowany jest uC.<br /><br />Dlatego najlepszym rozwiązaniem wydawało by się znalezienie rozwiązania o którym wspomniałem na początku moich wypocin <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 6 gru 2017, o 09:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-06T09:03:17+01:00</updated>
<published>2017-12-06T09:03:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200067#p200067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200067#p200067"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200067#p200067"><![CDATA[
Z tym, że koledze  <strong>zieleniewiak</strong> nie chodzi o gotowe serwisy. <br />Sam chciałby takie coś stworzyć. Też bym chciał ale nie mam wystarczającej wiedzy w tym zakresie jak na razie.. <br /><br />Kiedyś próbowałem ale robiłem to prze MySQL. Procesor wysyłał dane np. co 30 sekund i poprzez skrypt PHP na serwerze zostały zapisane do bazy danych.  Następnie chciałem w B4A odczytywać po wejściu w aplikację ostatni records  z bazy, ale to mi się już nie udało..  <br /><br />Jeśli Cię to interesuje to tutaj kolega z forum @Majster to troszkę opisał <br /><a href="http://avrtech.pl/2016/09/11/stacja-meteo-czesc-3/"  class="postlink">http://avrtech.pl/2016/09/11/stacja-meteo-czesc-3/</a><br /><a href="http://avrtech.pl/2016/09/13/stacja-meteo-czesc-4/"  class="postlink">http://avrtech.pl/2016/09/13/stacja-meteo-czesc-4/</a><br /><br />oraz cała seria poradników Pana Mirka &quot;WIFI - CLIENT - WWW/PHP&quot;<br /><br /><a href="https://www.youtube.com/watch?v=pFWw5oVj_0Q"  class="postlink">https://www.youtube.com/watch?v=pFWw5oVj_0Q</a>. <br /><br />Wspólnymi siłami może jakoś damy radę to zrobić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Zastanawiam się tylko czy to jest dobre podejście w tym przypadku do bazy danych. Czy takie serwisy jak Supla I Domoticz działają z bazą danych czy jest to inaczej zrealizowane<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 6 gru 2017, o 09:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-12-06T08:56:11+01:00</updated>
<published>2017-12-06T08:56:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200066#p200066</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200066#p200066"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200066#p200066"><![CDATA[
O Domoticzu pisałem wcześniej przy okazji NASa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 6 gru 2017, o 08:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-06T05:28:16+01:00</updated>
<published>2017-12-06T05:28:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200058#p200058</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200058#p200058"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200058#p200058"><![CDATA[
<div class="quotetitle">Morcinek92 napisał(a):</div><div class="quotecontent"><br />Dokładnie o takie rozwiązanie mi chodzi jakie podesłał kolega KiSoft. <br /><br />AVR &lt;-&gt; Could &lt;-&gt; B4A<br /><br />Ale to już wyższa szkoła.. <br /><br />Przeglądałem ofertę firmy Supla.. mają mega tanie te urządzenia<br /></div><br />Właśnie taki rodzaj komunikacji mnie też interesuje<br />I tutaj też mam pytanie.<br />Jak zrobić taki serwer jak zrobiła firma Supla.<br />Wiem, że musi być to serwer zewnętrzny z którym kontaktują się zarówno AVR jak i B4A. Server ten następnie w jakiś &quot;magiczny&quot; sposób umożliwia bezpośrednią komunikację pomiędzy AVR a B4A.<br />Chciałbym zrobić taki serwer jednak nie bardo wiem jak się do tego zabrać.<br />Jakie wymagania musi spełniać usługa hostingowa aby taki server stworzyć?<br /><br />Szukam po internecie ale wygląda to trochę jak błądzenie po ciemku.<br />Może koledzy podali by choć jakieś wskazówki/słowa kluczowe od których należało by zacząć.<br />Z góry dziękuje za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 6 gru 2017, o 05:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-05T20:57:25+01:00</updated>
<published>2017-12-05T20:57:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200036#p200036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200036#p200036"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200036#p200036"><![CDATA[
Dokładnie o takie rozwiązanie mi chodzi jakie podesłał kolega KiSoft. <br /><br />AVR &lt;-&gt; Could &lt;-&gt; B4A<br /><br />Ale to już wyższa szkoła.. <br /><br />Przeglądałem ofertę firmy Supla.. mają mega tanie te urządzenia <br /><br /><a href="https://allegro.pl/listing?string=SONOFF&amp;order=p&amp;bmatch=ss-base-relevance-floki-5-nga-hcp-hou-1-3-1003"  class="postlink">https://allegro.pl/listing?string=SONOFF&amp;order=p&amp;bmatch=ss-base-relevance-floki-5-nga-hcp-hou-1-3-1003</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 5 gru 2017, o 20:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-12-05T20:17:55+01:00</updated>
<published>2017-12-05T20:17:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200034#p200034</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200034#p200034"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200034#p200034"><![CDATA[
Zapomniałem dodać, że można na NASie postawić np. Domoticza.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 5 gru 2017, o 20:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-12-05T18:47:27+01:00</updated>
<published>2017-12-05T18:47:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200024#p200024</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200024#p200024"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=200024#p200024"><![CDATA[
Jak masz taką potrzebę, to za niewielkie pieniądze można mieć swój własny serwer z publicznym IP na którym postawisz i robisz co Ci się żywnie podoba.<br />np. <a href="https://www.arubacloud.pl/vps/oferta-virtual-private-server.aspx"  class="postlink">ArubaCloud</a> lub <a href="https://www.vultr.com/pricing/"  class="postlink">Vultr</a>. Polecam do testowania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dostęp poprzez konsolę (z przeglądarki) lub shella.<br /><br />A jak ktoś ma w domu zewnętrzne IP, to oczywiście rozwiązania typu Raspberry PI, żeby nic nam nad uchem nie huczało. Albo .... jeszcze inne<br />rozwiązanie - NAS z wirtualizacją. Np. QNAP. Można na nim postawić i Linuxa i Windowsy (jak to w wirtualkach) i przekierować np. fizyczny<br />USB NASa do maszyny wirtualnej, żeby sobie z niego np. zabootować system (oczywiście bootowanie z plików ISO, które znajdują się na NASie też jest możliwe).<br />Łączenie się do wirtualnego komputera po VNC lub poprzez przeglądarkę.<br />Osobiście sprawdzałem - potrzebowałem zrobić dedykowanego pendrive'a z multisystemem (ok. 20GB) i nie chciałem zostawiać włączonego PCta,<br />który by ściągał niezbędne materiały <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Więc postawiłem na wirtaulce Qnapa testowy system, odpaliłem aplikację do tworzenia pena i po powrocie<br />z pracy, miałem wszystko gotowe. Co więcej mogłem sobie na bieżąco podglądać postęp <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 5 gru 2017, o 18:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-03T15:34:35+01:00</updated>
<published>2017-12-03T15:34:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199926#p199926</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199926#p199926"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199926#p199926"><![CDATA[
<div class="quotetitle">zieleniewiak napisał(a):</div><div class="quotecontent"><br />Jak przekierować komendę za pomocą zewnętrznego serwera.<br /></div>A masz dostęp do serwera z shellem czy tylko z hostingiem www?<br />Jak masz z shellem bez ograniczeń na uruchamiane aplikacje, to tworzysz serwer TCP (jest wiele przykładów w internecie) i jeżeli nie przewidujesz większej ilości urządzeń oraz aplikacji, to w prosty sposób wszystko co otrzymałeś na jednym połączeniu wysyłasz na drugie i odwrotnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br />Wydaje mi się że przy dostępie różnego rodzaju dodatków da się coś takiego zrobić także na apache. Tylko tutaj nie mamy możliwości komunikowania się między wątkami, więc dane wymieniane powinny być zapisywane do jakiejś bazy danych / pliku w którym każdy z procesów sprawdza czy coś się nie zmieniło.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 3 gru 2017, o 15:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zieleniewiak]]></name></author>
<updated>2017-12-03T13:56:53+01:00</updated>
<published>2017-12-03T13:56:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199922#p199922</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199922#p199922"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199922#p199922"><![CDATA[
Bardzo interesujący wątek. <div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Serwer przechowuje informacje w swojej bazie danych i udostępnia drugiej stronie. W ten sposób można wysyłać z aplikacji komendy do wykonania - zapisują się w bazie i czekają tam na kontakt urządzenia z serwerem.<br /></div><br />Testowałem to i ładnie działa ale jak się można domyśleć czas na przekazanie &quot;informacji&quot; z aplikacji na Androidzie do urządzenia docelowego będzie dość długi wynikający z ograniczonej częstotliwości odpytywania serwer o nowe dane.<br />Myślę, że autorowi wątku zależałoby na tym aby informacja była przekazana możliwie jak najszybciej czyli. np przyciskamy sobie jakiś przycisk na aplikacji w telefonie a urządzenie reaguje możliwie &quot;natychmiast&quot; czyli po czasie kilkudziesięciu/kilkuset milisekund.<br />Dlatego wydaje mi się, że ta opcja:<br /><div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Jak urządzenie jest połączone po TCP to nawet może od razu dostać przekierowaną komendę<br /></div><br />byłaby tutaj idealnym rozwiązaniem.<br />Sam jestem bardzo ciekaw jak to zrealizować. Jak przekierować komendę za pomocą zewnętrznego serwera.<br />Jakieś podpowiedzi co należałoby wygooglać aby podszkolić się w tym temacie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9049">zieleniewiak</a> — 3 gru 2017, o 13:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-03T13:20:17+01:00</updated>
<published>2017-12-03T13:20:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199921#p199921</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199921#p199921"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199921#p199921"><![CDATA[
Przy komercyjnych systemach często nie potrzebne jest publiczne IP w kliencie, bo dostawca daje serwer &quot;przesiadkowy&quot;. Polega to na tym, że zarówno aplikacja, jak i urządzenie łączą się z tym serwerem. Tam się autoryzują i urządzenie podaje identyfikator. Jeżeli aplikacja chce coś od urządzenia to wysyła do serwera żądanie, które na podstawie identyfikatora urządzenia jest do niego przekierowywane. Przy takich rozwiązaniach obie strony łączą się typowo po protokole TCP - często przez szyfrowane połączenia, lub po VPNie.<br /><br />Mając własny serwer w internecie można coś takiego samemu sobie zrobić. Tylko publiczne IP u operatora to koszt od 5 zł / miesiąc. Serwer z możliwością odpalania dowolnych własnych programów to znacznie więcej <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />.<br />Jednak można zrobić na tanim (nawet często darmowym) hostingu wersję podobnie działającą. Urządzenie jak i aplikacja wysyła zapytania i dane do serwera (tani hosting daje tylko http / https, ale to wystarcza). Serwer przechowuje informacje w swojej bazie danych i udostępnia drugiej stronie. W ten sposób można wysyłać z aplikacji komendy do wykonania - zapisują się w bazie i czekają tam na kontakt urządzenia z serwerem. Jak urządzenie jest połączone po TCP to nawet może od razu dostać przekierowaną komendę,. Gdy nie, to dopiero po ponownym połączeniu / odpytaniu się serwera.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br /><div class="quotetitle">Harry napisał(a):</div><div class="quotecontent"><br />Chodzi o to że każda sieć komórkowa ma gigantyczną rurę na świat, która mogłaby być wykorzystana w niecnych celach<br /></div>Sieci stacjonarne mają znacznie większe. To nie dlatego.<br />W sieci komórkowej kiedyś za wszystkie dane płaciłeś. Teraz to są limity danych, ale jak się wyczerpują to są zakładane ograniczenia prędkości lub naliczana opłata. Jeszcze gorzej jest w roamingu (szczególnie poza UE), gdzie opłaty nie są małe <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />.<br />Gdy masz publiczny adres IP bez blokowania połączeń z internetu, to  dowolna osoba może wysłać do Ciebie dane, które wliczają się w Twój pakiet. Czyli Ty nic nie robisz a dane Ci się wyczerpują / naliczają opłaty. Dlatego by operatorzy nie byli oskarżani o błędne naliczanie danych, wystawianie faktur za nieprzesłane dane, to wprowadzili taką politykę.<br />Jeżeli chcesz mieć dostęp z internetu to musisz mieć aktywowany dodatkowy APN. A że jest za tą usługę naliczana dodatkowa opłata, to ... marketing <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 3 gru 2017, o 13:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2017-12-03T08:46:00+01:00</updated>
<published>2017-12-03T08:46:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199913#p199913</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199913#p199913"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199913#p199913"><![CDATA[
W takim razie powiedzmy, że klient chce mieć urządzenie sterowane po wifi poprzez telefon komórkowy. Nie chce płacić co miesiąc opłaty za publiczne IP. <br />Jaki sposób Wy byście zastosowali ? <br /><br />1) Według mnie najtańsza opcja to wykupić jakąkolwiek domenę i serwer (albo wybrać darmową) i wysyłać dane do bazy danych a tam wyświetlać na stronie - która będzie skalowana do konkretnego wyświetlacza. <br /><br />Natomiast nadal to nie jest aplikacja w B4A.. : (<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 3 gru 2017, o 08:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-12-02T22:04:16+01:00</updated>
<published>2017-12-02T22:04:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199902#p199902</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199902#p199902"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199902#p199902"><![CDATA[
Z bardzo prostej przyczyny.<br />Chodzi o to że każda sieć komórkowa ma gigantyczną rurę na świat, która mogłaby być wykorzystana w niecnych celach.<br />Wiele lat temu na jakimś seminarium dot. bezpieczeństwa sieci, wykładowca pokazywał jak łatwo za pośrednictwem sieci komórkowej wywołać pad dowolnego serwera, w dosłownie kilkadziesiąt sekund. Jego DoS opierał się na banalnym pingu, tyle że z określoną trasą, w tym przypadku przez chińskiego operatora. Po pingu który był puszczony przez zaledwie minutę, serwer docelowy zaczął odpowiadać normalnie dopiero po 40 minutach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 2 gru 2017, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-02T19:18:08+01:00</updated>
<published>2017-12-02T19:18:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199897#p199897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199897#p199897"/>
<title type="html"><![CDATA[Re: UDP - wysyłanie pod adres www]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19728&amp;p=199897#p199897"><![CDATA[
dlatego wyżej pisałem, że w sieciach komórkowych to jest bonanza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 gru 2017, o 19:18</p><hr />
]]></content>
</entry>
</feed>