Socket
Socket
Sign inDemoInstall

redux-rxjs-socket.io

Package Overview
Dependencies
1
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    redux-rxjs-socket.io

connect socket.io to redux when using redux-observable


Version published
Weekly downloads
2
increased by100%
Maintainers
1
Install size
4.93 MB
Created
Weekly downloads
 

Readme

Source

redux-rxjs-socket.io

Helper functions to connect socket.io to redux, when using redux-observable.

Mappers

This library lets you define mappers from socket events to redux actions, and redux actions to socket events. The mappers you define are maps, that return a function that may return a value/array or a stream.

Event to Action Mappers

Below is a sample definition of socket to redux actions.

{
    // custom event that is triggered if you use the #register method and socket is registered
    [RegisterHelper.Symbols.SOCKET_REGISTER]: () => actions.createSocketUserConnect(),
    // custom event that is triggered when the subscription is stopped
    [RegisterHelper.Symbols.SOCKET_UNREGISTER]: () => actions.createSocketDisconnect(),
    // some custom events with data, that are emitted by the client/server socket
    ping: ({ time }) => actions.createPingAction(time),
    // you can also use the latest game state, when creating actions, can return streams
    test: ({ key }, gameState) => from(promise).pipe(map(() => actions.createTestAction(key, gameState.blaBla))),
}

Action to Emit Mappers

Below is a sample definition of mapping redux actions into emitted events.

(mapperUserId) => ({
    // on some action, create an event
    [ActionTypes.UserConnected]: ({ userId }, state) => {
       return userId !== mapperUserId
           ? [ { event: 'other_user', data: { userId, leaderboard: state.leaderboard } } ]
           : [];
    },
})

Methods

  • generateActionStreamCreator = (mapperDefinition) => (socket, state$, outsideEvent$) given a mapper definition, returns a function, that will return a action stream when given a socket, state stream and an custom outsideEventStream. When the returned stream is unsubscribed, the event register events on sockets will be unregistered.
  • generateEmitStreamCreator = (mapperDefinition) => (action$, state$) given a mapper definition, returns a function, that will return a event stream when given redux action stream and a redux state stream.
  • register = (eventToActionMapper, actionToEventMapper) => (socket, action$, state$, storeDispatch) when given event and action mapper definitions, returns you a function that will register a socket to a redux store. You just need to give socket, action$, state$ and the store dispatch function.

Keywords

FAQs

Last updated on 19 Jan 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc