Messaggio Privato di Gruppo - Problema Message Bus

Contesto
Abbiamo un sistema che ci permette di aggiungere programmatically utenti ai gruppi tramite l’API e di creare automaticamente messaggi privati per gruppi individuali, tutto tramite l’API.

Ad esempio, potremmo avere un gruppo chiamato: cooking-class-101

Per il quale creeremo un messaggio privato con cooking-class-101 e system come due partecipanti al messaggio privato.

Questo ha funzionato molto bene per noi come metodo per creare automaticamente chat di gruppo private per gruppi di persone.

Il Problema
Il problema che stiamo riscontrando è che, per gli utenti normali che fanno parte del gruppo, il message bus non restituisce alcun aggiornamento quando vengono aggiunti nuovi post al topic.

Ad esempio, abbiamo un messaggio privato di gruppo con ID topic 123. Possiamo vedere che il message bus è sottoscritto al canale topic/123, eppure, se un altro utente crea un post sul topic, il message bus non restituisce nulla e quindi l’ultimo post non viene mostrato automaticamente.

Abbiamo confermato che il message bus funziona generalmente come previsto, poiché restituisce correttamente i dati sul canale topic/presence/123.

La controparte di quanto sopra è che, per gli utenti admin che fanno parte del gruppo che è stato aggiunto al messaggio privato, il message bus restituisce correttamente i dati sul canale topic/123 e il nuovo post viene quindi mostrato correttamente sul topic in tempo reale.

Abbiamo anche confermato che, se un utente normale che è membro del gruppo viene invitato separatamente a partecipare al topic (quindi ora abbiamo cooking-class-101, system e regular-user come partecipanti), allora inizia a ricevere correttamente le risposte dal message bus sul canale topic/123 e quindi vede i nuovi post in tempo reale.

Ricerca
Scavando nel codice di Discourse, sono arrivato al seguente punto che sembra indicare che, per i topic di messaggi privati, potrebbe non esserci una notifica ai gruppi riguardo ai nuovi post pubblicati: discourse/app/models/post.rb at b7b81afe553a79f58f79f49a6c2ceff831aa4ec7 · discourse/discourse · GitHub

Non sono completamente sicuro di cosa dovrebbe restituire topic.allowed_users nel link sopra per un topic di messaggio privato con un gruppo aggiunto, ma sospetto che non includa l’elenco degli utenti che fanno parte del gruppo.

Ho etichettato questo come un bug, ma potrebbe essere un comportamento intenzionale?

2 Mi Piace

Assolutamente, per me sembra un problema di supporto e non un bug.

Prova partendo dalla fine, facendo tutto tramite l’interfaccia utente.

Funziona?

Ad esempio:

  • user1 è membro del gruppo A
  • messaggio inviato al gruppo A
  • user1 visualizza il messaggio
  • user2 risponde al messaggio
  • Vedi arrivare la risposta in tempo reale?

Se sì, allora c’è qualcosa di sbagliato nel modo in cui stai utilizzando l’API.

3 Mi Piace

Grazie per la risposta, Sam.

Abbiamo testato questa funzionalità dall’interfaccia di Discourse e presenta lo stesso comportamento errato: la risposta non arriva in tempo reale, arriva solo una notifica/avviso di notifica.

È quindi necessario aggiornare la pagina per vedere l’ultimo post.

Nel tuo esempio sopra, se user1 è un amministratore, invece, tutto funziona come previsto.

2 Mi Piace

Beh, questo suona certamente come un bug; testeremo, potrebbero volerci alcuni giorni.

4 Mi Piace

Splendido, grazie! Fammi sapere se hai bisogno di ulteriori informazioni.

1 Mi Piace

Ciao Sam, ti scrivo solo per chiedere se c’è un posto dove posso tenere d’occhio i progressi relativi a questo bug. Non sono molto pratico del processo di segnalazione e risoluzione dei bug su Discourse. Grazie!

2 Mi Piace

Sono abbastanza sicuro che Kris lo abbia risolto; ti consiglio di riprovare il test.

3 Mi Piace

Ciao @danjw,

scusa, ho dimenticato di farti sapere. Sam ha ragione, è stato risolto con la PR qui sotto:

3 Mi Piace