Я перестраиваю шлюз IM и надеюсь воспользоваться новыми функциями производительности в AsyncSockets для .net35.
Моя существующая реализация просто создает пакеты и перенаправляет IM-запросы от пользователей в различные IM-сети по мере необходимости, обрабатывая потоки запросов / ответов для каждого сеанса (сокета) подключенных пользователей.
В настоящее время я должен взаимодействовать с IasyncResult, и, как вы знаете, он не очень красив или масштабируем.
Моя путаница заключается в следующем:
1) при использовании новых Begin / End и SocketAsyncEventArgs в 3.5 нам все еще нужно создавать по одному SocketAsyncEventArgs на сокет?
2) получаем ли мы что-либо, предварительно инициализируя, скажем, 20000 клиентских подключений, поскольку мы знаем, что ожидаемое max_connections на сервер составляет 20000
3) нам все еще нужно использовать LOH (кучу больших объектов), выделенный байт [] для обработки полученных данных, как показано в примере SocketServers на MSDN, мы не собираем сервер, скажем, но все еще обрабатываем независимый прием для каждого подключенного сокета.
4) может быть, есть лучший образец для того, что я пытаюсь достичь?
Заранее спасибо.
Чарльз.