我应该在服务器端(或客户端)处理 Slang/Bad 字词屏蔽以获得更好的性能吗?
Should I process Slang/Bad words masking on Server side (or Client side) to achieve better performance?
我一直在开发一个实时聊天服务,需要屏蔽客户端发送的脏话。所以,现在我想知道系统性能,因为实时传输了数千条消息。
哪个部分(服务器或客户端)进程是屏蔽坏词以获得更好性能的最佳解决方案?
客户端:Android
服务器端:Nodejs(MySQL、Redis)
我想的方法:
- 从服务器下载俚语列表,并在客户端发送消息(如果是坏词)时屏蔽它。过程可能需要很长时间,但可能会有很好的搜索算法。
- 将俚语列表放在 Redis 和每个消息服务器上处理检查坏词(通过 Redis 查询)并将屏蔽的消息发送到客户端和端点。通过 redis 听起来不错,但我必须将屏蔽的消息发回客户端,这似乎让系统变慢了。
如果你想实时显示屏蔽消息,那么在两端实现它。客户端将负责显示消息并同时将其发送到服务器(异步进程)以进行屏蔽并保存到数据库。
确保屏蔽算法在两端相同,以便实时显示的数据和从数据库中提取的数据相同。
我一直在开发一个实时聊天服务,需要屏蔽客户端发送的脏话。所以,现在我想知道系统性能,因为实时传输了数千条消息。
哪个部分(服务器或客户端)进程是屏蔽坏词以获得更好性能的最佳解决方案?
客户端:Android
服务器端:Nodejs(MySQL、Redis)
我想的方法:
- 从服务器下载俚语列表,并在客户端发送消息(如果是坏词)时屏蔽它。过程可能需要很长时间,但可能会有很好的搜索算法。
- 将俚语列表放在 Redis 和每个消息服务器上处理检查坏词(通过 Redis 查询)并将屏蔽的消息发送到客户端和端点。通过 redis 听起来不错,但我必须将屏蔽的消息发回客户端,这似乎让系统变慢了。
如果你想实时显示屏蔽消息,那么在两端实现它。客户端将负责显示消息并同时将其发送到服务器(异步进程)以进行屏蔽并保存到数据库。
确保屏蔽算法在两端相同,以便实时显示的数据和从数据库中提取的数据相同。