Мне нужно разработать серверное приложение, использующее TCP-сокеты для игры. Я занимался некоторыми исследованиями, чтобы узнать, какая технология лучше всего соответствует моим потребностям, а также с помощью SO.C# Sockets vs NodeJS Socket.IO
В настоящее время у меня есть два варианта для себя. Это либо создание серверного приложения в C# с SocketAsyncEventArgs
, либо с помощью NodeJS и Socket.IO
.
Мой выбор будет для NodeJS, потому что я хотел бы думать, что они уже сделали всю тяжелую работу и много оптимизировали свою библиотеку сокетов. Так что все, что мне нужно сделать, это просто использовать его и, возможно, немного подстроить.
Но мой главный вопрос: будет ли NodeJS быть достаточно хорошим?
Сервер должен быть высокопроизводительным сокетным приложением. Я знаю, что могу получить хорошие результаты, когда я использую C#. Но действительно ли существует огромная разница между классом Socket Socket или NodeJs Socket.IO? Должен ли я ожидать меньше от NodeJS?
Я не смог найти информацию о Winsock vs NodeJS/Socket.IO. Поэтому я надеюсь, что у кого-нибудь есть какие-то знания об этих двух. И что я мог ожидать от этих двух, когда вы их сравниваете.
Дополнительная информация о том, что сервер будет делать.
Сервер будет в основном передавать данные от одного клиента другому. Дело в том, что один клиент отправит около 30
в 40
небольших пакетов (~ 300 байт) на сервер в секунду. Сервер будет отправлять каждый запрос ровно одному другому клиенту. Но в то же время другой клиент будет отправлять тот же объем данных в секунду назад.
Сервер - это своего рода посредник между двумя клиентами. В то же время к серверу можно подключить около 500 пар клиентов. Все данные передаются друг другу через сервер. Вот почему мне нужно хорошее приложение сокетов. Я думаю, что процессор не будет проблемой в моем случае, так как он не будет делать каких-либо тяжелых вычислений.
Я добавил дополнительную информацию о том, что сервер будет делать с моим сообщением. Мы также планируем сделать свой собственный тест. Я просто надеюсь, что там уже есть какая-то информация, потому что всегда приятно видеть, что другие пытались и какие результаты они получили от нее. – Vivendi
Я подозреваю, что любой подход будет достаточно быстрым, если он написан правильно (т. Е. Все async). В конце и .NET, и Node скомпилированы JIT, мусор собран с асинхронными API. – Richard