vue-socket-cluster

Socket cluster vuejs wrapper
2,336 14
Install
npm install vue-socket-cluster
Latest Version:1.0.3
License:MIT
Last Updated:Jun 16, 2018
Links: GitHub  ·  npm
Maintainer: nigeltiany

Socket cluster implementation for Vuejs 2 leveraging uws

Socket cluster documentation

Install

npm install vue-socket-cluster --save

Usage

Configuration
import VueSocketCluster from 'vue-socket-cluster';
Vue.use(VueSocketCluster, {
      connections: [{
            name: 'echo', // Each connection object must have a name and the name must be unique in the array
            hostname: '127.0.0.1',
            secure: false,
            port: 8000,
            rejectUnauthorized: false
            // Other socket cluster options
      }]
})
On Vuejs instance usage

add a property connection_name+Events to listen to connection events

var vm = new Vue({
      echoEvents:{
            connect: function(){
                console.log('socket connected')
            },
            echo: function(data){
                console.log(data)
            },
            // Other default events such as ['error','connect','disconnect','connectAbort','connecting', ...] as written on the documentation
            error () {
                //An error occurred on the connection name echo
            },
            connecting () {

            },
            // ...
            // for hyphen separated events such as 'custom-error' use ...
            customError () {

            }
      },
      methods: {
            //triggerInstance object = ```connection_name+Client```
            triggerEvent (name, data) {
                this.$echoClient.emit('name', data);
            }
      }
})

Remove existing listener on client

delete this.$options.$echoClient.event_name;

Alternative Usage

<template>
<!--every connection gets a dynamic component
    use <[client-name]-client></[client-name]-client>
    -->
    <echo-client event="echo" :onData="receiveData"></echo-client>
</template>
<script>

  export default {
      methods: {
          receiveData(data) {
              console.log(data)
          }
      }
  }
</script>
default events
<template>
    <!-- bind documented events using :on['Event_name'] first letter being a capital letter -->
    <echo-client event="echo" :onConnect="connected" :onMessage="anyMessageData"></echo-client>
</template>
<script>

  export default {
      methods: {
          connected(){
              console.log('connected to echo socket server')
          },
          anyMessageData(data) {
              console.log(data)
          }
      }
  }
</script>
sending data
<template>
    <!-- send data by changing the data property -->
    <echo-client :onConnect="connected" :data="message"></echo-client>
    <input :value="message" :disabled="connected">
</template>
<script>

  export default {
      data() {
          return {
              connected: false,
              message: null
          }  
      },
      methods: {
          connected(){
              this.connected = true
          },
          anyMessageData(data) {
              console.log(data)
          }
      }
  }
</script>
event data
<template>
    <!-- set the event attribute to the event name -->
    <echo-client event="eventName" :onData="eventData"></echo-client>
</template>
<script>

  export default {
      methods: {
          eventData(data){
             console.log(data)
          }
      }
  }
</script>
subscriptions
<template>

    <!-- set the channel attribute to the channel name -->
    <echo-client channel="channelName" :onData="channelData"></echo-client>
</template>
<script>
  export default {
      methods: {
          channelData(data){
             console.log(data)
          }
      }
  }
</script>

Based on works from MetinSeylan/Vue-Socket.io and its contributor

Related Packages

@fastybird/vue-wamp-v1

WAMPv1 websockets client for VUE 3

1,324
vue-json-rpc-websocket

JSON-RPC Websocket client for VueJS with Vuex integration

677 12
vue-native-websocket

Native WebSocket plugin and composable for Vue 3

478,654 935
vue-native-websocket-vue3

支持vue3和vuex、pinia的websocket插件

162,849 221
vue-peerjs

PeerJS bindings for Vue.js and Vuex

2,261 14

Version History

Version Released License
1.0.3 MIT
1.0.2 MIT
1.0.1 MIT
1.0.0 MIT
0.0.1 MIT