Ответы пользователя по тегу Node.js
  • Выбор архитекруты для websockeт'ов. eventloop или акторы?

    5HT
    @5HT
    Erlang
    TL;DR: Имплементация любой системы актеров автоматически является ивент лупом.

    Ивентлупом обычно называются планировщики, например в виде С библиотек таких как libuv, которая используется в node.js, Julia, Rust, а также в ивентлупом называют такие библиотеки как в D, например Vibe.D. Актеры Эрланга это больше чем просто планировщик, это также еще и система обмена сообщениями.

    Если вам не нужно чтобы ваши единицы планирования общались между собой, вам возможно не нужна система актеров, и можно будет быстро это написать прямо на C с использование libuv. Как только вы захотите чтобы единицы планирования общались между собой вам потребуется что-то больше чем просто цикл по стекам.

    Вопрос, к сожалению, не имеет смысла, так как Эрланг предоставляет даже больше чем просто систему актеров. Вы не найдете WebSocket сервер для Erlang который не поддерживает концепцию актеров, а также не найдете WebSocket сервер для Erlang который не поддерживает концепцию event loop.
    Ответ написан
    Комментировать
  • Какие технологии выбрать для написания чата?

    5HT
    @5HT
    Erlang
    Пример чата на Вебсокетах под Erlang:

    event(chat) -> wf:send(chat, wf:q(message)),
    
    body() ->
        wf:async(fun() -> loop() end,chat),
      [ #panel{id=history}, #textbox{id=message}, #button{postback=chat}].
    
    loop() ->
        receive
             Message ->
                 wf:insert_bottom(history, #span{text=Message}),
                 wf:flush()
        end,
        loop().


    Полный пример можно посмотреть здесь:
    https://github.com/5HT/n2o/tree/master/samples
    Ответ написан
    Комментировать