A nice place to start with if I want to go down the effect-module road. Although as Mark said it rely on the WebSocket.LowLevel module, which imply extra complexity in the implementation.
The resulting API looks a lot clearer and more natural than the other phoenix implementation, which is a big bonus. Le 17/05/2017 à 01:38, Oliver Searle-Barnes a écrit : > You might find https://github.com/saschatimme/elm-phoenix useful to look > at, it's an effects manager phoenix channels built on top of the > websocket effects manager. > > On Tuesday, 16 May 2017 15:30:18 UTC+1, Christophe de Vienne wrote: > > Hi everyone, > > I am attempting to implement the pub/sub NATS (https://nats.io) > protocol > on top of the WebSocket API as a TEA component. > > I have a hard time finding an API for subscriptions: for each > subscription some context must be kept, a unique subscription ID > generated and in some case a unique reply subject too, and I would like > each subscription to generate custom messages for the component which > made it. > > I suspect it would be a lot more natural with an effect module, with > which I could (hopefully) write, in any part of the application: > > subscriptions : Model -> Sub Msg > subscriptions model = > Nats.Subscribe model.endpoint "some.subject" MyMessage > > or, for req/rep (a pub + a short-living sub expecting a result): > > myrequest : Model -> Cmd Msg > myrequest model = > Nats.request model.endpoint "a.request.subject" MyReply > > > Another difficulty I have is that in some cases I need to send 2 or 3 > messages through the websocket, in the right order, but WebSocket.send > returns a Cmd. So I have to concat the 3 commands in 1 message, which > works but oblige > > Am I wrong being tempted by using an effect module for this kind of > module ? > If so how can I mimick such an API with a TEA approach ? > If not is there any documentation I can read to get familiar with > them ? > > Is there any existing module that does this kind of thing for another > protocol ? > > Thanks! > > -- > Christophe de Vienne > > -- > You received this message because you are subscribed to the Google > Groups "Elm Discuss" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] > <mailto:[email protected]>. > For more options, visit https://groups.google.com/d/optout. -- Christophe de Vienne -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
