Benutzer blocken, technische Hintergründe

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Bisher habe ich die Funktion einen Nutzer in Threema zu blockieren noch nie verwendet und habe da eigentlich auch keinen Bedarf für.

    Nichtsdestotrotz kam mir die Funktion heute morgen spontan in den Kopf und ich frage mich, wie dies eigentlich technisch realisiert ist. Vielleicht weiß dies ja jemand hier.

    In der Theorie könnte ich mir da ja zwei Möglichkeiten vorstellen. Threema schickt die Nachrichten ja an einen Server, wo diese für 14 Tage (oder so) liegen bleiben bis der Empfänger sie abholt.

    Die erste denkbare Möglichkeit wäre also, dass der Client die Nachrichten von blockierten Kontakten gar nicht erst abholt. Vorausgesetzt natürlich, dass der Client der Nachricht überhaupt ansehen kann, von welchem Absender sie stammt. Bei dieser Variante würde die Nachricht also weiterhin auf dem Server liegen, bis dieser sie nach dem Zeitlimit löscht und der Absender würde weiterhin das Briefumschlag-Icon zu sehen bekommen.

    Die zweite Möglichkeit, die ich mir vorstellen kann ist, dass der Client die Nachricht zwar abholt (Empfänger sieht also das Zugestellt-Icon), die Nachricht aber unmittelbar löscht.

    Ist es eine dieser Möglichkeiten, oder verfährt Threema hier auf eine andere Art, die mir aktuell nicht in den Sinn kommt?

    Interessant ist das ganze ja auch im Hinblick auf die Frage, was passiert, wenn man einen geblockten Nutzer wieder unblocken würde. Bei Variante 1 könnte die Nachricht dann ja nachträglich doch noch zugestellt werden, solange sie noch auf dem Server liegt. Wenn sie wie in Variante 2 jedoch gelöscht wird, ist das ja nicht mehr möglich.


    Dann noch was ganz allgemeines: Wie gesagt habe ich die Funktion in Threema noch nie genutzt. Aber natürlich kenne ich Blockierfunktionen auch aus anderen Apps. Was mich persönlich ja in der Situation als ein Absender wirklich stört ist, dass man bei vielen Apps keine brauchbare Rückmeldung bekommt, dass der Empfänger einen Block drin hat. Geht es nur mir so? Es wäre doch aus technischer Sicht eigentlich kein Problem, dem Absender eine Rückmeldung "Der Empfänger will keine Nachrichten von Ihnen Empfangen und hat sie blockiert" zu geben…

  • Die einfachste Möglichkeit das (annäherend) herauszufinden, ist sich zwei unterschiedliche Threema-IDs auf verschiedenen Geräten (kann auch auf Windows 10 ein Android-Emulator (Bluestacks 5) sein ) zuzulegen und einmal Nachrichten senden ohne Blockierung und nachher mit Blockierung.

    ... oder wenn du dich mit Programmiersprachen und IT-Technik auskennst könntest du das wahrscheinlich über den Source-Code herausfinden.

    Wie ich das letzte Mal experimentell meinen zweiten Account blockiert habe und mir selbst Nachrichten geschickt habe, bilde ich mir ein, dass das "Senden" Symbol dann erscheint, aber das "zugestellt"? oder logischerweise auch die "gelesen" Meldung der Absender nie erhält.

    Der Empfänger merkt jedenfalls (zumindest bei meinem letzten Versuch) nichts, es gibt also keine Nachricht wie etwa "Blockierter Kontakt hat versucht Nachricht / Anruf zu übermitteln" und auch der Sender erhält keine gesonderte Nachricht.

  • Ich habe diesbezüglich nicht in den Source Code der App geschaut, kann aber vom Handling und des Debug Logs mitteilen:

    Dass man blockiert wurde, bekommt man nicht mit.

    Ausgehende Nachrichten zu einer Person, die einen blockiert hat, bleiben im Status "Nachricht zum Server geschickt" (verschlossener Briefumschlag). Ein Deblockieren führt nicht dazu, dass noch nicht zugestellte Nachrichten abgeholt werden. Diese sind dann verloren.

    Im Debug Log finde ich dazu auch keine Einträge, dass die Nachrichten von blockierten Kontakten abgeholt und verarbeitet werden. Da hilft wohl nur die Einsicht in den Quellcode weiter, ob die Nachricht abgeholt aber ignoriert oder gar nicht geholt wird.

  • Im Debug Log finde ich dazu auch keine Einträge, dass die Nachrichten von blockierten Kontakten abgeholt und verarbeitet werden. Da hilft wohl nur die Einsicht in den Quellcode weiter, ob die Nachricht abgeholt aber ignoriert oder gar nicht geholt wird.

    Der Server weiß bei Threema nicht, wer in deiner Kontaktliste drin ist und wen du blockiert hast. Nur das Handy kann also entscheiden, ob eine Nachricht ignoriert werden soll. Nachrichten werden also abgeholt und nach dem Entschlüsseln einfach verworfen. Bei Medien werden die Inhalte in diesem Fall gar nicht erst heruntergeladen.

  • Der Server weiß bei Threema nicht, wer in deiner Kontaktliste drin ist und wen du blockiert hast. Nur das Handy kann also entscheiden, ob eine Nachricht ignoriert werden soll. Nachrichten werden also abgeholt und nach dem Entschlüsseln einfach verworfen. Bei Medien werden die Inhalte in diesem Fall gar nicht erst heruntergeladen.

    Aber wenn die Nachricht heruntergeladen wird, müsste dann der Absender nicht zumindest das „Nachricht zugestellt“-Icon erhalten?

    Aber wie schon gesagt: Grundsätzlich fände ich es deutlich besser, wenn ein Absender in so einem Fall eine eindeutige "Sie sind geblockt" Meldung erhalten würde.

  • Das sehen andere aber wiederum anders.

    Ich hätte ehrlich gesagt auch gerne eine automatische Antwort wie "Sie sind geblockt" ... da wäre es super, wenn man das einstellen könnte, ob die betreffende Person eine Nachricht erhält oder nicht

    Aber dann sind wir vermutlich schon wieder beim Thema Metadaten vermeiden

  • Ich hätte ehrlich gesagt auch gerne eine automatische Antwort wie "Sie sind geblockt" ... da wäre es super, wenn man das einstellen könnte, ob die betreffende Person eine Nachricht erhält oder nicht

    Aber dann sind wir vermutlich schon wieder beim Thema Metadaten vermeiden

    Das würde nicht unter Metadaten fallen. Es wäre eine ganz normale Threema Nachricht, wie jede selbst verfasste Nachricht, eine Bestätigung/Ablehnung, Lesebestätigung,...

    Für den Server nicht einsehbar, der empfangene Client verarbeitet diese Nachricht einfach. Ggf. als Statusnachricht, wie eine Abstimmung in einer Umfrage, ein Bei- oder Austritt einer Gruppe oder eben so wie eine Lesebestätigung.

  • Da das der Client senden müsste, könntest du so den Onlinestatus der Gegenseite erproben, ohne dass dies für den Client sichtbar wäre.

    Solche "Silent Pings" sind eher zu vermeiden.

    (Um Verwirrung zu vermeiden: Ich arbeite bei Threema, spreche hier aber für mich.)

  • Ich will nicht, dass geblockte Personen erfahren, dass die geblockt wurden.

    Dann hast du sicher auch eine Begründung dafür, oder? Die würde mich nämlich interessieren.

    Ich sehe nämlich keinen Grund dafür, warum man jemand geblockten im Unklaren darüber lassen sollte.
    Aus der Sicht eines Geblockten finde ich dieses Nicht-Wissen nämlich äußert unbefriedigend. Da macht man sich dann total Sorgen, warum eine Nachricht eigentlich nicht ankommt und ob dem Empfänger was passiert ist.

    Genau genommen würde ich sogar noch einen Schritt weiter gehen: Wenn ich tatsächlich in die Situation kommen sollte jemanden zu blocken, dann tue ich das ja nicht ohne Grund. Und derjenige hat meiner Ansicht nach ein Anrecht darauf diesen Grund auch zu erfahren. Man sollte daher vielleicht sogar darüber nachdenken ob es sinnvoll wäre zu fordern, dass ein Blocken (egal in welcher App) immer mit der Angabe einer Begründung erfolgen sollte, die derjenige dann auch sehen kann.

    Da das der Client senden müsste, könntest du so den Onlinestatus der Gegenseite erproben, ohne dass dies für den Client sichtbar wäre.

    Solche "Silent Pings" sind eher zu vermeiden.

    Das ist natürlich ein Nachteil, der sich aus der Datensparsamkeit von Threema ergibt. Für andere Apps, die solche Informationen serverseitig speichern ist eine solche Einschränkung natürlich nicht relevant.

    Allerdings gäbe es sicherlich auch da irgendwelche Möglichkeiten, dies zu bewerkstelligen. Man könnte die Info z.B. nicht grundsätzlich als Antwort zu jeder Nachricht schicken, sondern ggf. einmalig in dem Moment, in dem die Sperre erfolgt, sowie ggf. in unregelmäßigen Abständen oder sowas. Irgendwas schlaues ließe sich da sicher basteln.

    Letztendlich bin ich aber persönlich sowieso der Meinung, dass ein Blocken oder ignorieren kommunikationstechnisch kein guter Stil ist.

  • Aus der Sicht eines Geblockten finde ich dieses Nicht-Wissen nämlich äußert unbefriedigend. Da macht man sich dann total Sorgen, warum eine Nachricht eigentlich nicht ankommt und ob dem Empfänger was passiert ist.

    Sehe ich eigentlich auch so. Zumindest sollte man EINMALIG eine Nachricht erhalten KÖNNEN, dass man dauerhaft geblockt ist bzw. eine erneute wenn die Sperre wieder aufgehoben ist.

    Und derjenige der blockt könnte ja einstellen ob und wie häufig der Absender eine Benachrichtigung erhält.

  • Dann hast du sicher auch eine Begründung dafür, oder? Die würde mich nämlich interessieren.

    Ich sehe nämlich keinen Grund dafür, warum man jemand geblockten im Unklaren darüber lassen sollte.
    Aus der Sicht eines Geblockten finde ich dieses Nicht-Wissen nämlich äußert unbefriedigend. Da macht man sich dann total Sorgen, warum eine Nachricht eigentlich nicht ankommt und ob dem Empfänger was passiert ist.


    Genau genommen würde ich sogar noch einen Schritt weiter gehen: Wenn ich tatsächlich in die Situation kommen sollte jemanden zu blocken, dann tue ich das ja nicht ohne Grund. Und derjenige hat meiner Ansicht nach ein Anrecht darauf diesen Grund auch zu erfahren. Man sollte daher vielleicht sogar darüber nachdenken ob es sinnvoll wäre zu fordern, dass ein Blocken (egal in welcher App) immer mit der Angabe einer Begründung erfolgen sollte, die derjenige dann auch sehen kann.

    Die Funktion gibt es ja schon. Vor dem Blocken kann man ganz einfach eine Nachricht verschicken und den Grund für den Block erklären.

    Jeder Tag könnte Threema Web für iOS Tag sein.

    Jeder Tag ist Threema Web für iOS Tag.

    Jeder Tag könnte Threema Multidevice Tag sein.

    Jeder Tag ist Threema Multidevice Tag.

    Nur mit Threema Safe schläft man ruhig.