У меня есть другой аргумент с моим другом.Простота протокола в сравнении с «собственностью»
Рассмотрите необходимость создания упрощенного протокола на основе JSON, который в основном используется для отправки типов событий (сообщений) между сторонами.
Скажем, что-то вроде
{ event_id: 1, chat_message: "Hello" }
{ event_id: 2, group_id: 3, presence: "online" }
...
Я предлагаю, чтобы сохранить этот протокол, как и выше, в то время как мой друг предлагает сделать что-то вроде:
{ event_id: 1, details: { chat_message: "Hello" } }
{ event_id: 2, group_id: 3, details: { presence: "online" } }
...
Его аргумент заключается в том, что так же, как TCP и, например, HTTP находятся на разных уровнях «ответственности», этот протокол должен использовать под-объект «детали», чтобы сохранить разделенные данные.
Еще один аргумент, который он имеет, заключается в том, что обработчики, которые обрабатывают согласованное событие, не должны знать ничего о «маршрутизации» информации (например, event_id).
Мои аргументы:
- Мы увеличивая длину каждого сообщения (и сетевого трафика, это может быть важно для системы, которая обменивается с большим количеством сообщений) ради сокрытия этой информации от обработчики
обработчики сделать на самом деле нужно знать «маршрутизация» информация, скажем, ответить на них должным образом:
this.replyTo(event['event_id'], reply); // or... this.replyTo(event, reply);
Даже если нужно скрыть event_id и вещи л икэ что из обработчиков, мы можем просто лишить их, прежде чем перейти к обработчикам и при этом еще сэкономить на трафике
Этот протокол достаточно прост и не должен использоваться кем-то другим.
Что вы думаете вы?
Это не такая уж большая разница в пропускной способности, особенно если вы подбрасываете компрессию поверх этого. Просто подумал, что я бы сказал. – strager
Да, это не так, но почему нам нужно добавить его для ... по существу ничего? –