Должен ли я обрабатывать шланг / плохие слова маскировки на стороне сервера (или на стороне клиента) для достижения лучшей производительности? -- mysql поле с участием node.js поле с участием redis поле с участием server поле с участием client пол Связанный проблема

Should I process Slang/Bad words masking on Server side (or Client side) to achieve better performance?


0
vote

проблема

русский

Я разрабатываю в чате в чате в режиме реального времени и необходимость замаскировать плохие слова, которые клиент отправляет. Итак, теперь мне интересно проводить производительность системы как тысячи MSG Transfer в реальном времени.

, какую часть (сервер или клиент) процесс является лучшим решением, маскирующим плохие слова, чтобы получить лучшую производительность?

Сторона клиента: Android

Серверная сторона: nodejs (mysql, redis)

Методы, которые я думаю:

    .
  • Скачать список SLANG с сервера и когда клиент отправляет сообщение MSG (если плохое слово), маска. Процесс может занять много времени, но может быть хороший алгоритм поиска.
  • Поместите список SLANG на Redis и на каждой обработке MSG-сервера проверьте для плохого слова (через запрос REDIS) и отправьте Masg MSG на клиента и конечную точку. Через redis звучит здорово, но мне нужно отправить обратно замаскированную MSG к клиенту, это кажется, что я делаю систему медленно.
Английский оригинал

I have been developing a real time chatting service and need to mask bad words which client sends. So, now I am wondering about system performance as thousands of msgs transfer at a real time.

Which part (server or client) process is the best solution masking bad words to get better performance?

Client side : Android

Server side : Nodejs (MySQL, Redis)

Methods I am thinking :

  • Download slang list from server and when client sends a msg (if bad word) mask it. Process can take long time but there may be good search algorithm.
  • Put slang list on redis and on every msg server processing check for bad word (through redis query) and send masked msg to client and endpoint. Through redis sounds great but I have to send back masked msg to client, this seems me making the system slow.
</div
              

Список ответов

0
 
vote
vote
Лучший ответ
 

Если вы хотите отобразить сообщение Masked Message Realte, затем реализуйте его на обоих концах. Сторона клиента позаботится о том, чтобы отобразить сообщение и одновременно отправлять его на сервер (Async-процесс) для маскировки и сохранения в базе данных.

Убедитесь, что алгоритмы для маскировки являются одинаковыми на обоих концах, чтобы данные отображали в реальном времени и один, который будет вытащить из базы данных, будет такой же.

 

If you want to display the masked message realtime then implement it on both end. Client side would take care of displaying the message and simultaneously send it to server (async process) for masking and saving to database.

Make sure that the algorithms for masking are same at both end so that the data displayed realtime and one which will be pulled from database will be same.

</div
 
 

Связанный проблема

0  Оптимизировать этот запрос на 1000000+ строк  ( Optimize this query for 1000000 rows ) 
Мне нужно потянуть данные и записывать его в файл CSV, но слишком много времени и слишком много времени. Что не так с этим и что я могу сделать? Кроме того, я...

0  Процедура ничего не делает  ( Procedure doesnt do anything ) 
Я сделал процедуру в MySQL. Похоже, это выглядит. Я назвал эту процедуру из PHP. После этого звонка стол все еще остается пустым, и я не знаю почему. ...

0  Pandas импорт не вставляет все строки  ( Pandas import not inserting all rows ) 
Я импортирую файл .csv с 3300 рядами данных через следующее: <код> kendo0 После успешного импорта я делаю запрос «Выбрать * из ...» на моем столе, которы...

1  Иерархическая система комментариев в резьбовом режиме: php и mysql  ( Hierarchical commenting system in threaded view php and mysql ) 
У меня есть необходимость оказать резьбовое изображение 2-уровневых иерархических комментариев системы. Комментарии хранятся в базе данных. Информация о иерар...

2  Testopia: невозможно добавить тестовые случаи в тестовый прогон  ( Testopia unable to add test cases to a test run ) 
Bugzilla 4.4. , Tesopia 2.5, Ubuntu 15 все обновляется и почти по умолчанию по настройкам. Каждый раз, когда я пытаюсь обновить / редактировать существующи...

1  Доступ к данным из другой базы данных в Joomla 3.2+  ( Accessing data from another database in joomla 3 2 ) 
Я обновляю свои компоненты от Joomla 1.7 до Joomla 3.3 и должен держать оригинальную базу данных. Поэтому мне необходимо получить доступ к данным отображения ...

0  Если запись в таблице A не существует в таблице b сделать что-то, как бы я пошел по этому поводу?  ( If record in table a does not exist in table b do something how would i go abou ) 
У меня есть таблица A с полем, называемым писем, мне нужно проверить таблицу B, которая также имеет поле под названием Emails. Если электронное письмо в табли...

8  MySQL Заказ с использованием строки даты данных  ( Mysql order by using date data row ) 
У меня есть запрос что-то подобное: <код> public class AlarmReciever extends BroadcastReceiver { AlarmClock alarmClock=new AlarmClock(); @Override public v...

-1  Используйте SELECT Под действие  ( Use select under case statement ) 
Я хочу использовать запрос, который позволяет мне получить два различия в зависимости от фильтра. Я попробовал это, но не работает. <код> CASE WHEN filtre =...

1  Проблемы проектирования базы данных с отношениями  ( Database design issues with relationships ) 
Я работаю над обновлением для существующей базы данных, которая была разработана без какого-либо из кода для реализации рассматриваемой конструкции. Теперь я ...

0  Сумма дебета на базе месяца в SQL  ( Sum of debit on the base of month in sql ) 
У меня есть квитанция об имени таблицы Скретко, как следует, <код> account_no date transaction_type amount s1 2012-7-7 opening ...

0  Ошибка обновления записи  ( Error updating a record ) 
Я получаю ошибку mysql: #update (ActiveReCord :: authentInvalid) "mysql :: Ошибка: # hy 000got Ошибка 139 из механизма хранения: При попытке обновить те...

0  Пройдите имя таблицы, чтобы выбрать оператор из курсора  ( Pass table name to select statement from cursor ) 
Как я могу использовать значения, возвращаемые из курсора в качестве названий таблиц в MySQL-процедурах? <код> DECLARE cur CURSOR FOR select table_name, col...

-2  PHP отображается только идентификатор, а не значение из MySQL [Закрыто]  ( Php only displaying id and not the value from mysql ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос нуждается в Детали или ясность . В настоящее...

0  Лучший способ написать этот запрос?  ( Best way to write this query ) 
Я делаю подпроси в присоединении к другой таблице, когда я хотел иметь возможность отсортировать результаты, которые я вернулся с ним, мне нужен только первый...