2017-10-29 3 views
2

websocket 연결을 허용하고 URL 쿼리 매개 변수를 기반으로 해당 연결에 메시지를 라우팅하는 브로커가 있습니다.Elm, 어떻게 사용자 입력을 기반으로 websocket을 열 수 있습니까?

사용자로부터 입력을 받아들이고 그 입력을 기반으로 websocket 연결을 여는 클라이언트 (Elm에서) 작성에 대해 생각했습니다. 어떻게하면 (높은 수준의) Websocket 모듈 (가능한 경우)을 사용하여이 작업을 수행 할 수 있습니까?

+0

[Elm WebSocket module] (https://guide.elm-lang.org/architecture/effects/web_sockets.html)을 확인 했습니까? – kaskelotti

+0

예,하지만 구독이 동적이라는 것을 알지 못했습니다. – Atle

답변

2

Websocket 모듈을 사용하면 쉽게 구현할 수 있습니다. 모델이 업데이트 될 때 구독이 업데이트되므로 Websocket.listen에서 만든 구독 목록을 생성하는 것입니다. 사용자 작업에 따라 모델에 값이 추가되면 해당 값을 사용하여 새 구독을 만들 수 있습니다.

type alias Model = 
    { servers: List Url } 

subscriptions model = 
    Sub.batch (List.map (\url -> Websocket.listen url ...) model.servers)