Comments (4)
Not a high priority, it is very niche application.
Barely documented, not an official XEP.
PubSub for this is a bit of overengineering.
How would it behave with a long list of blocked users?
Besides, not many people expect MUC groupchats to be used in 2023.
Could be done later once we wanna invest time in spam detection infrastructure and logic (i.e. XEP-0377 or something custom). But again, we would probably have to evaluate usage with gigantic lists. Removing the spammer account could be preferable for installations, which do not use s2s. Also, integration with mod_privacy could be considered (but again, there is no clear usage model even for mod_privacy, which would fit the modern requirements).
from mongooseim.
@arcusfelis: It has been added in ejabberd since 23.04:
- https://www.process-one.net/blog/ejabberd-23-04/
- https://docs.ejabberd.im/admin/configuration/modules/#mod-muc-rtbl
from mongooseim.
It is literally non-scalable. It uses broadcasts to ALL online MUC room processes on each pubsub update.
So, if list updates are too often it would lead to DDoS.
And it does not look like it will scale with large number of blocked items. With larger number of items we:
- have to copy more data into into the room processes.
- starting having scalability issues with the number of items inside of a single node in pubsub.
In the public environment it means that the spammer could register millions of spam accounts on a public server that allows it and we don't have control over that. And we would have to block the whole domain (which would block the regular users too) or not block them at all.
from mongooseim.
We could optimize kicking (so, no broadcasts to all rooms) but it still leaves us with the issue of the maximum number of items we can block over PubSub. Scalability characteristics of Pubsub is more interesting topic though. Can we write 1M items into a single node? Something to test first.
from mongooseim.
Related Issues (20)
- Message sending failure with OMEMO HOT 2
- Change config in muclight replacing old config
- GraphQL session ListSessions returns empty lists
- `max_stanza_size` doesn't work with websockets HOT 2
- How to use wss ? HOT 4
- GraphQL SSE crashes on large message stanza payload HOT 1
- How does mongooseim handle unacknowledged stanza's ? HOT 2
- Mongooseim not sending push notifications to disconnected clients HOT 4
- mod_event_pusher HTTP only sends chat type messages HOT 2
- How to implement stream resumption in XEP-0198 stream management from client side ? HOT 7
- gen_server 'wpool_pool-mongoose_wpool$rdbms$global$default-1' terminated with reason: {{{integer_overflow,int8,957926528636579656073}, HOT 4
- Messages send through push notifications again resended to the client upon reconnection HOT 2
- how to send push notification data to my custom http endpoint instead of mongoosepush? HOT 2
- Chat history is not working properly. HOT 13
- Cannot resume stream because SMID was previously deleted (`no_previous_session_for_smid` | XEP-0198)
- Unable to compile eodbc in Mac. HOT 2
- question, not issue: is it possible to have an endpoint or iq command to send a push notification for a user that is offline.
- Error creating token sequence number while on token based connection
- `mod_inbox` is missing some RSM documentation HOT 1
- Question: how string is being converted into int for message id?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mongooseim.