Message Programm

Startseite Foren Deutsches LiveCode-Forum Message Programm

Schlagwörter: 

Ansicht von 9 Antwort-Themen
  • Autor
    Beiträge
    • #32824
      Oliver122
      Teilnehmer

        Hallo zusammen,

        ich möchte einen eigenen Messenger bauen. Kann mir eine zwei grundsätzliche Fragen beantworten.

        1. Ist es möglich das ohne Server zu machen? Das Programm muss ja die gespeicherte Profile immer irgendwie abgleichen.

        2. Wenn ich ein Tablet als Server nehme, dann muss das Programm dieses ja finden und und die Profile abgleichen und aktualisieren. Wie kann ich das Gerät im Internet finden und auf das Programm zugreifen.

        Grüße Oliver

      • #32826
        Torsten
        Teilnehmer

          Hi Oliver,

          wichtige Frage: wer sind die Clients (Desktop, Mobil) und über welches Netz werden die Nachrichten übertragen (Imternet oder lokales WLAN / LAN)?

          Im lokalen LAN können sich Clients reletiv einfach über Sockets Nachrichten schicken, aber alles was über das Internet geht, wird komplexer, das hier üblicherweise Router dazwischen sind, die Ports blockieren, die IPs unterschiedlich sind etc.
          Da die IPs der Clients im Internet meistens dynamisch vergeben werden (auf jeden Fall dann, wenn Dein Tablet zuhause im WLAN ist, bei mobilen Daten habe ich es noch nicht ausprobiert, aber würde mich wundern, wenn es anders wäre), KANN der andere nicht wissen, wie man sich erreicht.

          Selbst wenn Du es hinkriegst, dass sich zwei Clients mper Sockets Messages schicken, bräuchtest Du noch einen Ort, wo die beiden erfahren, welche IP sie gerade haben. Das wäre im einfachsten Fall über einen kostenlosen Server möglich, dem man seine aktuelle IP über FTP schickt.

          Knackpunkt ist auf jeden Fall die Frage, ob der Client/Server für Verbindungen über das Internet seine Ports öffnen kann.

          Ich habe da mal Versuche gemacht, aber es bis jetzt nincht geschafft. Im LAN gehts super, über das Internet gehts nicht, liegt aber warhscheinlich an den entsprechenden Firewalls, die dazwischen liegen, nehme ich an.

          Hat da jemand bessere Erfahrungen?

          Happy Coding
          Torsten

        • #32828
          Oliver122
          Teilnehmer

            Hi Torsten,

            danke für deine Antwort. Es soll in
            jedem Fall eine Android App werden, über das Internet.
            Also ein Gegenstück zu WhatsApp. Ich möchte e
            Mitteilungen verschicken, die auch nur der liest, der sie bekommt.
            Nicht weil ich Böses plane, sonder weil mir die ausspäherei auf den Geist geht.

          • #32829
            Torsten
            Teilnehmer

              Warum nimmst Du nicht Signal?

            • #32830
              Oliver122
              Teilnehmer

                Nehme ich ja, aber wenn man sicher gehen will muss man alles selber machen. Außerdem geht es mir ja darum meine Fähigkeiten in dem Bereich zu verbessern und alles zu lernen was geht. Daher auch meine seltsame Frage mit der Ki.
                Mir ist klar das es manchmal etwas irre wirkt und ich vieles eventuell nie können werden, aber wenn man es nicht versucht wird es auch nichts. Zwei Programme laufen immerhin schon, sind aber auch sehr simple Probleme.

              • #32925
                Torsten
                Teilnehmer

                  Wieviele Leute sollen denn Nachrichten austauschen? Wenn es nur wenige sind, könnte man auch ein System bauen, was nur auf FTP und verschlüsselten Téxtnachrichten basiert.

                • #32978
                  Axwald
                  Teilnehmer

                    Hallo,

                    es hängt alles davon ab, wann & wo die Leute kommunizieren möchten. Ich gehe mal davon aus, die Antwort ist: Wann immer Internet verfügbar ist. Richtig?

                    Damit bist Du auf eine serverseitige Lösung beschränkt, die per HTTPS kommuniziert:

                    – HTTPS, weil HTTP auf mobil nicht mehr ohne weiteres unterstützt wird.

                    – keine Sockets und damit direkte Verbindung der Clients, weil das nur dann geht, wenn das Gerät echten, vollen Internetzugang hat (und nicht hinter einem NAT-Router, einer Firewall oder einer Security-Appliance hängt, oder in einem eingeschränkten Netz unterwegs ist).

                    – kein direkter Datenbank-Zugriff, kein FTP – siehe oben. Das geht nicht immer – schon ein Fritzbox-Gast-WLAN (Sperre: “alles außer Surfen und Mailen”) blockt hier.

                    Also bleibt nur HTTPS (GET, POST) – das sollte IMMER gehen. (Es gibt natürlich auch dafür Lösungen, aber das wird dann richtig aufwendig – und wieweit das mit LC realisierbar ist, entzieht sich meiner Kenntnis …).

                    Ein Modell, wie das gehen könnte:

                    – Du hängst eine simple Datenbank (mySQL, MariaDB bei einem Webhoster) ins Netz, in der die Nachrichten für eine bestimmte Zeit gespeichert werden. Nachrichten, die als “gelesen” markiert sind, oder die zu alt sind, werden via Cronjob gelöscht.

                    – Die Clients melden sich über eine HTTPS-fähige Middleware, und holen ihre Nachrichten ab, resp. posten welche.

                    – Die Middleware dient dazu, die Kommunikation zwischen Client & Datenbank zu filtern und zu “übersetzen” – also aus dem Inhalt eines HTTPS-Pakets eine Datenbank-Abfrage zu generieren, und die Antwort der DB wieder in ein solches zu transferieren & zurückzuschicken.

                    Einfaches Beispiel: Der Client schickt das ins Internet:
                    ["https" & Domain]/cgi-bin/connect.php?data=[die Daten]
                    Jetzt erhält das Script “connect.php” “[die Daten]” und kann sie auswerten:
                    Es wird prüfen, ob eine korrekte Identifizierung drin ist, und wird, falls ja, die betreffenden Nachrichten aus der DB zusammensuchen. Diese verpackt es (verschlüsseln, base64encode …) und schickt sie mittels “echo” zurück.

                    Als Middleware nimmst Du PHP, das ist in neueren Versionen recht schnell, auf jedem Webspace vorinstalliert und hat eine große Community, die Dich mit passenden Code-Beispielen zuwirft.
                    Theoretisch könntest Du auch LiveCode Server nehmen – ich habe es versucht, bin dann aber zum Ergebnis gekommen, daß PHP lernen & benutzen weniger schmerzhaft ist. LC Server ist IMO ein unsupportetes Alibi-Produkt, daß man in derzeitigen Zustand in der Pfeife rauchen kann.

                    Noch Fragen? Ich höre.

                    Viel Spaß!

                  • #33362
                    Torsten
                    Teilnehmer

                      Hi Axwald,

                      gebe Dir vollkommen recht, das PHP hier das Mittel der Wahl ist, vor allem, weil es eben überall verfügbar ist und das Problem recht einfach ist.

                      Zum Thema Livecode Server habe ich eine andere Meinung, da ich bisher sehr zufrieden mit den Möglichkeiten bin, die angeboten werden. Der wesentliche Vorteil ist doch, dass man keine neuen Konzepte/Syntax etc. lernen muss UND Code, der auf dem Desktop funktioniert, direkt übernehmen kann, ja, sogar komplett fertige Stacks einbinden kann. Diese Möglichkeiten hat man sonst nirgends.

                      Ich habe zwei Server bei http://www.hostm.com laufen, auf deren Servern Livecode bereits vorinstalliert ist und die einen sehr schnellen Service bieten. Wenn irgendwas nicht klappt, haben die eine gute Antwort parat.

                      Testen geht auf dem Desktop mit der .htaccess-Konfiguration und in meinem Falle MAMP aus sehr einfach und zuverlässig.

                      Nachteil ist eben, dass es noch keinen kostenlosen Dienst gibt, der LCS anbietet, so wie es sonst viele Provider mit PHP machen.

                      Happy Coding
                      Torsten

                    • #33387
                      Axwald
                      Teilnehmer

                        Hallo,

                        HostM dürfte für den professionellen Einsatz im Geltungsbereich der DSGVO et al. eher ungeeignet sein :/

                        Meine Probleme mit LC Server:

                        – Die paar “supported Linux distributions” sind fast ausnahmslos uralt, und längst aus dem Supportzyklus. Aktuelle Distributionen (z.B Ubuntu, RHEL, Fedora) werden gar nicht erst unterstützt.

                        – Support von LC Ltd. ist praktisch nicht-existent. Bei Bug-Reports schaut Panos sich das auf onRev an, und wenn es da geht, war es das.
                        Dokumentation ist spärlich, und das, was es gibt, ist weitgehend veraltet resp. schlicht falsch.

                        – Support von der Community ist praktisch nicht-existent, offensichtlich benutzt kaum jemand LC Server.

                        – Auf richtigen Web-Servern im echten Leben (also da, wo man einen alternativen CGI Prozessor einsetzen würde), läuft LC Server nicht. Die laufen nicht unter den Steinzeit-Distributionen, die LC unterstützt, und die haben nicht alle die “Dependencies” installiert, die LC erfordert – auf richtigen Servern wird das installiert, was unbedingt gebraucht wird, sonst nichts. Alles andere fällt unter “Resourcen-Verschwendung” und “potentielle Angriffs-Vektoren” & kommt nicht in die Tüte.

                        – LC Server kommt mit einem Riesen-Haufen “Dependencies” (also Abhängigkeit von Software, die installiert sein muss). Die sind nicht nur vollommen unnötig (wer braucht Font-Management auf einem CGI Server?), sie fressen auch massiv Performance. Seit 2014 gibt es die Bitte, wenigstens die Schriftverwaltung abschaltbar zu machen – und das sind 3/4 der Startzeit, bei jedem einzelnen CGI-Aufruf! Aber statt dessen haben sie mit der 9er Linie noch mal einen ganzen Haufen vollkommen überflüssiger Dependencies ‘reingepackt :/

                        Ich wollte eigentlich gerne mit LC Server arbeiten, und habe da auch einiges an Zeit & Arbeit reingesteckt. Nach meinen Tests wäre es möglich, auch mit aktuellen PHP-Versionen zu konkurrieren. Wenn LC Ltd. sich um das Produkt kümmern würde – aber das tun sie nicht. Also doch saurer Apfel -> PHP.

                        Disclaimer: Ich rede hier ausschließlich vom produktiven, professionellen Einsatz. Also “zum Lebensunterhalt verdienen”, nicht “als Hobby”. Mit der Pflicht zu Dokumentation & Gewährleistung, und zur Einhaltung des Vorschriften-Dschungels. Und mit der Erwartung, daß der Server nicht schon bei 10 gleichzeitigen Benutzern die Flügel streckt …

                        Viel Spaß!

                        • #33539
                          Torsten
                          Teilnehmer

                            Hallo Axwald,
                            danke für die ausführlichen technischen Details. In Bezug auf de Distributionen frage ich mich allerdings, wie hostm es dann schafft, alle möglichen Server-Versionen von LCS anzubieten?
                            https://www.hostm.com/livecode-hosting

                            Beste Grüße
                            Torsten

                        • #33531
                          Oliver122
                          Teilnehmer

                            Hi,

                            danke erstmal für die Infos. Ist es auch möglich über LTE direkt von Handy zu Handy zu kommunizieren, wenn beide die App drauf haben?
                            Ich muss mich da noch bisschen durchwurschteln. Bin mir noch nicht sicher wie es gehen soll.

                            • #33538
                              Torsten
                              Teilnehmer

                                Ene Direktverbindung vonn Handy zu Handy geht leider nicht, ohne einen Server in der Mitte, über den die Kommunikation läuft.

                          Ansicht von 9 Antwort-Themen
                          • Du musst angemeldet sein, um auf dieses Thema antworten zu können.