MCPcopy
hub / github.com/MetinSeylan/Vue-Socket.io

github.com/MetinSeylan/Vue-Socket.io @3.06 sqlite

repository ↗ · DeepWiki ↗ · release 3.06 ↗
27 symbols 45 edges 6 files 12 documented · 44%
README
<a href="https://github.com/MetinSeylan/Vue-Socket.io" target="_blank">
<img width="250" src="https://raw.githubusercontent.com/MetinSeylan/Vue-Socket.io/master/docs/logo.png">
</a>

Vue-Socket.io is a socket.io integration for Vuejs, easy to use, supporting Vuex and component level socket consumer managements

Demo

are you looking for old documentation? it's here

🚀 Installation

npm install vue-socket.io --save
Using Connection String
import Vue from 'vue'
import store from './store'
import App from './App.vue'
import VueSocketIO from 'vue-socket.io'

Vue.use(new VueSocketIO({
    debug: true,
    connection: 'http://metinseylan.com:1992',
    vuex: {
        store,
        actionPrefix: 'SOCKET_',
        mutationPrefix: 'SOCKET_'
    },
    options: { path: "/my-app/" } //Optional options
}))

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')
Using socket.io-client Instance
import Vue from 'vue'
import store from './store'
import App from './App.vue'
import VueSocketIO from 'vue-socket.io'

const options = { path: '/my-app/' }; //Options object to pass into SocketIO

Vue.use(new VueSocketIO({
    debug: true,
    connection: SocketIO('http://metinseylan.com:1992', options), //options object is Optional
    vuex: {
      store,
      actionPrefix: "SOCKET_",
      mutationPrefix: "SOCKET_"
    }
  })
);

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')
Parameters Type's Default Required Description
debug Boolean false Optional Enable logging for debug
connection String/Socket.io-client null Required Websocket server url or socket.io-client instance
vuex.store Vuex null Optional Vuex store instance
vuex.actionPrefix String null Optional Prefix for emitting server side vuex actions
vuex.mutationPrefix String null Optional Prefix for emitting server side vuex mutations

🌈 Component Level Usage

If you want to listen socket events from component side, you need to add sockets object in Vue component, and every function will start to listen events, depends on object key

new Vue({
    sockets: {
        connect: function () {
            console.log('socket connected')
        },
        customEmit: function (data) {
            console.log('this method was fired by the socket server. eg: io.emit("customEmit", data)')
        }
    },
    methods: {
        clickButton: function (data) {
            // $socket is socket.io-client instance
            this.$socket.emit('emit_method', data)
        }
    }
})
Dynamic Listeners

If you need consuming events dynamically in runtime, you can use subscribe and unsubscribe methods in Vue component

this.sockets.subscribe('EVENT_NAME', (data) => {
    this.msg = data.message;
});

this.sockets.unsubscribe('EVENT_NAME');

🏆 Vuex Integration

When you set store parameter in installation, Vue-Socket.io will start sending events to Vuex store. If you set both prefix for vuex, you can use actions and mutations at the same time. But, best way to use is just actions

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {},
    mutations: {
        "<MUTATION_PREFIX><EVENT_NAME>"() {
            // do something
        }
    },
    actions: {
        "<ACTION_PREFIX><EVENT_NAME>"() {
            // do something
        }
    }
})

Stargazers over time

Stargazers over time

<a href="https://github.com/MetinSeylan/Vue-Socket.io" target="_blank">
<img src="https://media.giphy.com/media/11jlnltQgUi2mQ/giphy.gif">
</a>

Core symbols most depended-on inside this repo

info
called by 12
src/logger.js
addListener
called by 2
src/emitter.js
removeListener
called by 2
src/emitter.js
onEvent
called by 2
src/listener.js
connect
called by 1
src/index.js
emit
called by 1
src/emitter.js
dispatchStore
called by 1
src/emitter.js
register
called by 1
src/listener.js

Shape

Method 16
Class 8
Function 3

Languages

TypeScript100%

Modules by API surface

src/logger.js7 symbols
src/emitter.js7 symbols
src/listener.js5 symbols
src/index.js5 symbols
src/mixin.js3 symbols

Dependencies from manifests, versioned

@babel/core7.1.2 · 1×
@babel/plugin-proposal-class-properties7.1.0 · 1×
@babel/plugin-transform-classes7.1.0 · 1×
@babel/preset-env7.1.0 · 1×
babel-loader8.0.4 · 1×
cross-env5.2.0 · 1×
socket.io-client2.1.1 · 1×
webpack4.23.1 · 1×
webpack-cli3.1.2 · 1×

For agents

$ claude mcp add Vue-Socket.io \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact