Giter Club home page Giter Club logo

cycle-ws-driver's Introduction

Cycle.js WebSocket Driver

A Cycle.js Driver for using WebSockets in the browser (RxJS).

npm install --save cycle-ws-driver

Usage

Basic setup

import { run } from '@cycle/run';
import { makeWebSocketDriver } from 'cycle-ws-driver';

function main({ ws }) {
  ...
}

const drivers = {
  ws: makeWebSocketDriver('ws://localhost:8000')
}

Cycle.run(main, drivers);

Normal usecase (with RxJS)

function main({DOM, ws}) {
  const messages$ = ws.scan((acc, m) => [...acc, m], [])
  // messages$: ---[]--['message 1']--['message 1', 'message 2']-->
  const formSubmit$ = DOM.select('#form').events('submit').do(e => e.preventDefault())
  const messageInput$ = DOM.select('#message').events('input').map(e => e.target.value)
  const sendMessage$ = formSubmit$
    .withLatestFrom(messageInput$, (e, message) => message)

  const vtree$ = messages$
    .startWith([])
    .map(messages =>
      <div>
        <ul>
          { messages && messages.map(message =><li>{message}</li>) }
        </ul>
        <form id="form" action="">
          <input id="message" type="text" placeholder="Type a message..." />
          <input type="submit" value="Send" />
        </form>
      </div>
    )
   
    return {
      DOM: vtree$,
      ws: sendMessage$
    }
}

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.