Easy-to-use React component for websocket communications.

Overview

react-websocket contributions welcome FOSSA Status

react-websocket is a easy-to-use React component for websocket communications.

Help Wanted

Things here are running very slowly as I have a lot of other stuff to take care at the moment so please don't be upset if I don't answer your question or if a PR sits unreviewed for a few days or weeks. Anyone interested in helping it move faster can help by submitting or reviewing PR's and answering each other's questions.

Installing

npm install --save react-websocket

Usage

  import React from 'react';
  import Websocket from 'react-websocket';

  class ProductDetail extends React.Component {

    constructor(props) {
      super(props);
      this.state = {
        count: 90
      };
    }

    handleData(data) {
      let result = JSON.parse(data);
      this.setState({count: this.state.count + result.movement});
    }

    render() {
      return (
        <div>
          Count: <strong>{this.state.count}</strong>

          <Websocket url='ws://localhost:8888/live/product/12345/'
              onMessage={this.handleData.bind(this)}/>
        </div>
      );
    }
  }

  export default ProductDetail;

Properties

url

required The url the websocket connection is listening to.

onMessage

required The callback called when data is received. Data is JSON.parse'd

onOpen

The callback called when the connection is successfully opened.

onClose

The callback called when the connection is closed either due to server disconnect or network error.

debug

default: false Set to true to see console logging

reconnect

default: true

accelerated reconnection time

License

FOSSA Status

Comments
  • Doesnt Install

    Doesnt Install

    Pretty sure this no longer installs / works - lots of errorsradynapier:~/workspace (devel) $ npm install --save react-websocket npm WARN package.json [email protected] No repository field. |

    [email protected] install /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/utf-8-validate node-gyp rebuild

    make: Entering directory /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/utf-8-validate/build' CXX(target) Release/obj.target/validation/src/validation.o In file included from ../src/validation.cc:15:0: ../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’ NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) { ^ ../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) { ^ ../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’ , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’: ../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’: ../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../src/validation.cc:10:0: /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:31:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:43:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../src/validation.cc:15:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’ return node::Buffer::New(v8::Isolate::GetCurrent(), size); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’: ../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’ return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size); ^ make: *** [Release/obj.target/validation/src/validation.o] Error 1 make: Leaving directory/home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/utf-8-validate/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/ubuntu/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 4.2.0-c9 gyp ERR! command "/home/ubuntu/.nvm/versions/node/v4.2.1/bin/node" "/home/ubuntu/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/utf-8-validate gyp ERR! node -v v4.2.1 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok

    [email protected] install /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/bufferutil node-gyp rebuild

    make: Entering directory /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/bufferutil/build' CXX(target) Release/obj.target/bufferutil/src/bufferutil.o In file included from ../src/bufferutil.cc:16:0: ../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’ NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) { ^ ../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) { ^ ../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’ , node::smalloc::FreeCallback callback ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’: ../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope v8::Isolate::GetCurrent(), data, length, callback, hint); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’: ../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous return node::Buffer::New(v8::Isolate::GetCurrent(), data, size); ^ ../node_modules/nan/nan.h:672:67: note: candidates are: In file included from ../src/bufferutil.cc:10:0: /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:31:40: note: no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match> NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, ^ /home/ubuntu/.node-gyp/4.2.1/include/node/node_buffer.h:43:40: note: no known conversion for argument 2 from ‘const char*’ to ‘char*’ In file included from ../src/bufferutil.cc:16:0: ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’: ../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’ return node::Buffer::New(v8::Isolate::GetCurrent(), size); ^ ../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’: ../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’ return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size); ^ make: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1 make: Leaving directory/home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/bufferutil/build' gyp ERR! build error gyp ERR! stack Error: make failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/ubuntu/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) gyp ERR! stack at emitTwo (events.js:87:13) gyp ERR! stack at ChildProcess.emit (events.js:172:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) gyp ERR! System Linux 4.2.0-c9 gyp ERR! command "/home/ubuntu/.nvm/versions/node/v4.2.1/bin/node" "/home/ubuntu/.nvm/versions/node/v4.2.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/ubuntu/workspace/node_modules/react-websocket/node_modules/ws/node_modules/bufferutil gyp ERR! node -v v4.2.1 gyp ERR! node-gyp -v v3.0.3 gyp ERR! not ok npm WARN optional dep failed, continuing [email protected] npm WARN optional dep failed, continuing [email protected] [email protected] node_modules/react-websocket └── [email protected] ([email protected], [email protected])

    opened by ghost 13
  • onClose is not being fired

    onClose is not being fired

    I am not getting onClose events via WebSocket. onOpen events work fine. I have built a test websocket server via node.js that I am starting and stopping.

     <Websocket url='ws://localhost:3132/btc/' 
                 debug={true}
                 protocol="echo-protocol"  
                 onMessage={this.handleData.bind(this)}
                 reconnect={true}
                 onClose={this.handleClose.bind(this)}
                 onOpen={this.handleOpen.bind(this)}
            />
    

    Console printout:

    bundle.js:103859 WebSocket connection to 'ws://localhost:3132/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
    (anonymous) @ bundle.js:103859
    bundle.js:103825 Websocket disconnected
    

    I did a npm install today, and am using the redux-minimal.js.org starter kit.

    I think this is a bug.

    opened by awb99 3
  • Cant send POST data through websocket

    Cant send POST data through websocket

    I need to send an array of simple objects to the websocket, and as far as I know this is not possible since the websocket url is GET only.

    Is there a way I'm missing to send more complex params through the URL or would it be a potential feature to add?

    opened by antholord 2
  • support multiple protocols

    support multiple protocols

    The websocket protocol supports an array of protocols like let socket = new WebSocket("ws://url", ["protocol1",""protocol2"]);

    This PR implements that

    opened by figassis 1
  • Bump querystringify from 0.0.4 to 2.1.1

    Bump querystringify from 0.0.4 to 2.1.1

    Bumps querystringify from 0.0.4 to 2.1.1.

    Commits
    • 88d2336 [dist] 2.1.1
    • 30e1d19 [fix] Don't throw on invalid input (#25)
    • e619535 [fix] Correctly transform null/undefined/NaN values to an empty string #22
    • 020c30f [dist] 2.0.0
    • 422eb4f [security] Prevent overriding of build-in properties by default (#19)
    • 0b65759 chore(package): update mocha to version 3.5.0 (#12)
    • 5e79e6e chore(package): update mocha to version 3.4.0 (#11)
    • 4cad3ab chore(package): update mocha to version 3.3.0 (#10)
    • 1e41231 Merge pull request #9 from unshiftio/greenkeeper/assume-1.5.0
    • 7cdb42e chore(package): update assume to version 1.5.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump tar from 2.2.1 to 2.2.2

    Bump tar from 2.2.1 to 2.2.2

    Bumps tar from 2.2.1 to 2.2.2.

    Commits
    • 523c5c7 2.2.2
    • 7ecef07 Bump fstream to fix hardlink overwriting vulnerability
    • 9fc84b9 Use {} for hardlink tracking instead of []
    • 15e59f1 Only track previously seen hardlinks
    • 4f85851 Ignore potentially unsafe files
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    dependencies 
    opened by dependabot[bot] 1
  • Add license scan report and status

    Add license scan report and status

    Your FOSSA integration was successful! Attached in this PR is a badge and license report to track scan status in your README.

    Below are docs for integrating FOSSA license checks into your CI:

    opened by fossabot 1
  • Added support for MozWebSocket

    Added support for MozWebSocket

    The component no longer works with Firefox 55.0.3 because of their new WebSocket implementation. I have added detection and switch support so FF browsers now work again.

    opened by patricksculley 1
  • Added onOpen and onClose event handlers

    Added onOpen and onClose event handlers

    Thank you, I love this thing!

    Since the client needs to be aware if it has missed any messages from the server, I needed the Websocket to be aware if it has lost connection and/or reconnected.

    I added those 2 listeners as optional so I could gracefully handle re-synchronization in the event of network issues.

    opened by patricksculley 1
  • Reconneting problem

    Reconneting problem

    I've notice that if the webSocket went down it will never restart, even if the props "reconnect" was set to true. That was because the WebSocket was never restarted.

    opened by cardallica 1
  • Added a reconnect option

    Added a reconnect option

    Hi ! I've added a "reconnect" option to the Websocket component.

    How it's used : <Websocket reconnect={10} debug={true} url='ws://localhost:8080/' onMessage={this.handleData}/>

    If disconnected, the component will wait between 0 and 10 seconds before attempting a reconnection. The randomness avoids a storm of reconnections in case of server restart.

    I've tried using ws.resume() instead of recreating the websocket entirely but it fails to work sometimes. Recreating the ws from scratch shows no ill effect.

    If reconnection fails, it will attempt a new reconnection later, and so on...

    I tried to stick to your code conventions...

    opened by chrisDeFouRire 1
  • please update example/server.py

    please update example/server.py

    Hello, Could you please update example/server.py for the latest python environment? Otherwise, the following error occurred:

    $ python3 example/server.py 
    Traceback (most recent call last):
      File "example/server.py", line 29, in <module>
        class WebSocketHandler(tornado.websocket.WebSocketHandler):
      File "example/server.py", line 35, in WebSocketHandler
        @tornado.gen.engine
    AttributeError: module 'tornado.gen' has no attribute 'engine'
    $
    $ pip3 list | grep -e appdirs -e packaging -e pyparsing -e six -e tornado
    appdirs             1.4.3
    packaging           19.2 
    pyparsing           2.4.4 
    six                 1.13.0 
    tornado             6.0.3 
    
    opened by kkdd 0
  • Changing url does not update websocket url

    Changing url does not update websocket url

    Changing the url after component has mounted does not cause the websocket to update

    Example:

    const WebsocketDemo = ({ url }) => {
      const [message, setmessage] = useState('');
      const [urlVal, seturlVal] = useState(url);
      const handleData = (data) => {
        setmessage(data);
      };
    
      return (
        <div>
          <p>
            <input type="text" value={urlVal} onChange={(e) => { seturlVal(e.target.value) }} />
          </p>
    
          <Websocket
            url={urlVal}
            onMessage={handleData}
          />
        </div>
      );
    };
    
    opened by sbland 5
  • install is error

    install is error

    PS E:\react-websocket> yarn start yarn run v1.5.1 $ cross-env NODE_ENV=development node server.js E:\react-websocket\node_modules\webpack-dev-server\lib\Server.js:131 const { compile, invalid, done } = compiler.hooks; ^

    TypeError: Cannot destructure property compile of 'undefined' or 'null'. at addHooks (E:\react-websocket\node_modules\webpack-dev-server\lib\Server.js:131:49) at new Server (E:\react-websocket\node_modules\webpack-dev-server\lib\Server.js:144:5) at Object. (E:\react-websocket\server.js:5:1) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:188:16)

    opened by zhaodagang 0
  • onClose never called ?!

    onClose never called ?!

    Hi, yesterday I used react-websocket and it works well but when I do this :

    <Websocket 
              url='ws://localhost:8080/' 
              onMessage={this.handleData.bind(this)}
              onClose={this.handleClose.bind(this)}
              onOpen={this.handleOpen.bind(this)}/>
    

    onOpen works, onMessage works but onClose doesn't works. I go into the module to see index.jsx file and I see :

    websocket.onclose = () => {
        this.logging('Websocket disconnected');
        if (typeof this.props.onClose === 'function') this.props.onClose();
        if (this.shouldReconnect) {
            let time = this.generateInterval(this.state.attempts);
            this.timeoutID = setTimeout(() => {
                this.setState({attempts: this.state.attempts+1});
                this.setState({ws: new WebSocket(this.props.url, this.props.protocol)});
                this.setupWebsocket();
            }, time);
        }
    }
    

    So it will works but in the build file, the

    if (typeof _this.props.onClose !== 'undefined') _this.props.onClose();
    

    is missing. On Master branch, the build file has this line so could you add new tag to npm Please ? Because for now I need to add this line in the build file.

    Thanks.

    opened by batteurMDR 1
Releases(2.0.1)
Owner
Mehmet Kose
Mehmet Kose
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Library to calculate a Mean Opinion Score (MOS) from 1 to 5 for audio and video real time communications

RTC SCORE Library to calculate a Mean Opinion Score (MOS) from 1 to 5 for audio and video real time communications. The first version of the algorithm

Gustavo Garcia 25 Nov 27, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Reference video calling application using Dolby.io Communications APIs.

Dolby.io Communications Video Call React App Video Call App The application available in this repository demonstrates the capabilities of Dolby.io's v

Dolby.io Samples 17 Jan 2, 2023
Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js

ws: a Node.js WebSocket library ws is a simple to use, blazing fast, and thoroughly tested WebSocket client and server implementation. Passes the quit

WebSockets 19.2k Jan 4, 2023
⛰ "core" is the core component package of vodyani, providing easy-to-use methods and AOP implementations.

Vodyani core ⛰ "core" is the core component package of vodyani, providing easy-to-use methods and AOP implementations. Installation npm install @vodya

Vodyani 25 Oct 18, 2022
Angular multiselect component for web application. Easy to integrate and use.

Angular multiselect component for web application. Easy to integrate and use.

Dinh The Loc 2 Apr 20, 2022
🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.

Animate.css If you need the old docs - v3.x.x and under - you can find it here. Just-add-water CSS animation Installation Install with npm: npm instal

Animate.css 76.7k Dec 30, 2022
🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.

Animate.css If you need the old docs - v3.x.x and under - you can find it here. Just-add-water CSS animation Installation Install with npm: npm instal

Animate.css 76.7k Jan 4, 2023
jQuery based scrolling Bar, for PC and Smartphones (touch events). It is modern slim, easy to integrate, easy to use. Tested on Firefox/Chrome/Maxthon/iPhone/Android. Very light <7ko min.js and <1Ko min.css.

Nice-Scrollbar Responsive jQuery based scrolling Bar, for PC and Smartphones (touch events). It is modern slim, easy to integrate, easy to use. Tested

Renan LAVAREC 2 Jan 18, 2022
An easy to implement marquee JQuery plugin with pause on hover support. I know its easy because even I can use it.

Simple-Marquee Copyright (C) 2016 Fabian Valle An easy to implement marquee plugin. I know its easy because even I can use it. Forked from: https://gi

null 16 Aug 29, 2022
Full-featured, middleware-oriented, programmatic HTTP and WebSocket proxy for node.js

rocky A multipurpose, full-featured, middleware-oriented and hackable HTTP/S and WebSocket proxy with powerful built-in features such as versatile rou

Tom 370 Nov 24, 2022
A simple NodeJS WebSocket WebApp vulnerable to blind SQL injection

NodeJS WebSocket SQLi vulnerable WebApp A one-day build of a vulnerable WebSocket app on NodeJS to practice boolean based SQLi over WebSocket. I made

Rayhan Ahmed 36 Dec 27, 2022
An unofficial SmartThings websocket API library (alpha)

An unofficial SmartThings websocket API library (alpha) ?? Installation This is a Node.js module available through the npm registry. $ npm i -S smart-

Stephen Mendez 4 Sep 20, 2021
一个基于node.js,express,socket.io的websocket非常棒的聊天室,代码简单很适合新手. A very nice websocket chat room based on node.js, express, socket.io. the code is simple, very suitable for novices

来来往下看,虽然教程又臭又长但是一步步地保姆式教学很简单的,毕竟我是真菜鸟嘛,当然什么都往细了说╮(╯_╰)╭ 一、使用方法 该教程内容所有指令都为Linux CentOS 7.x环境下指令,其他平台请您自行查询(⊙x⊙;) 1.下载node.js并下载Sakura_Chat_Room node.j

樱樱怪 10 Jul 21, 2022
A node.js module for websocket server and client

Nodejs Websocket A nodejs module for websocket server and client How to use it Install with npm install nodejs-websocket or put all files in a folder

Guilherme Souza 719 Dec 13, 2022
A WebSocket Implementation for Node.JS (Draft -08 through the final RFC 6455)

WebSocket Client & Server Implementation for Node Overview This is a (mostly) pure JavaScript implementation of the WebSocket protocol versions 8 and

Brian McKelvey 3.6k Dec 30, 2022
WebSocket emulation - Node.js server

SockJS-node SockJS for enterprise Available as part of the Tidelift Subscription. The maintainers of SockJS and thousands of other packages are workin

SockJS 2.1k Dec 29, 2022
Standards-compliant WebSocket client and server

faye-websocket This is a general-purpose WebSocket implementation extracted from the Faye project. It provides classes for easily building WebSocket s

null 588 Dec 23, 2022