Диспетчер сокетов для клиентских сокетов с использованием nio - PullRequest
2 голосов
/ 08 декабря 2010

Я новичок в Scala-разработчике, пытающейся понять, как спроектировать менеджер сокетов с использованием Java nio.

Я бы хотел, чтобы менеджер обрабатывал такие сообщения, как «подключение», «отключение», «отправка» и т. Д., И мог управлять несколькими клиентскими сокетами, отправляя им сообщения «onData» с полученными данными.

Насколько я понимаю, селектор должен запускаться в отдельном потоке.

Таким образом, я могу поместить селектор выбора в его собственный поток, но как я могу зарегистрировать новые каналы сокетов с помощью селектора (насколько я понимаю, селектор не является потокобезопасным), когда селектор может быть в вызове для выбора?

Что такое хороший дизайн при объединении актеров и потоков в Scala?

1 Ответ

3 голосов
/ 08 декабря 2010

Если вы не делаете это для чисто дидактических целей, мой совет: «Не изобретай велосипед». :)

Актеры + НИО = Наггати .

Или, если вы хотите что-то более низкого уровня, я бы предложил Netty (который использует Наггати)

...