Я работаю с сетевыми сокетами, большинство из которых связано с Windows Forms, но я просмотрел множество программ, таких как эмуляторы частных серверов, и я не удовлетворен моя обработка пакетов.Альтернатива работе с пакетом пакетов с коммутацией
Каждое сообщение имеет формат, в JSON, например, так:
{
"id":201,
"Message":"Hello, World.",
"User":"System",
"Color":"LawnGreen"
}
«Идентификатор» является постоянным во всех пакетах, и он идентифицирует функцию пакета. Пакеты одного и того же идентификатора, отныне известные как заголовок, всегда будут иметь одинаковые ключи, но не обязательно одинаковые значения (например, говорит кто-то).
Я десериализации JSON в динамичную и выполнить дело переключателя на заголовок пакета, например, так:
switch((int)jsonPacket.id)
{
case 201:
...
}
Учитывая, что это очень мелкосерийное приложение чата, который не будет даже почти начать пытаться реализовать все функции IRC, должен ли я быть обеспокоен и недоволен моей реализацией? Малые игры/серверы testbench используют тот же метод, но я не хочу ограничивать себя с точки зрения функциональности и производительности, или если это становится неприятностью.
Любые мысли помогут.
Вы не сказали нам, что не так с подходом 'switch' /' case'. И вы нам очень мало помогли, что для вас лучший подход. – Enigmativity
Я полагаю, что мой вопрос действительно о релевантности этого кода. Я знаю, что это сработает, но будет ли оно работать _best_ для моих целей, учитывая, что я видел, что другие подобные приложения используют подход использования делегатов и словарей. Но на это ответили! – Fuselight