Websocket (socket.io) plugin for VueJS. Support namespaces.
You can install it via NPM.
$ npm install vue-websocket
Download zip package and unpack and add the vue-websocket.js
file to your project from dist folder.
https://github.com/icebob/vue-websocket/archive/master.zip
Register the plugin, it will connect to /
import VueWebsocket from "vue-websocket";
Vue.use(VueWebsocket);
or connect to other address:
Vue.use(VueWebsocket, "ws://otherserver:8080");
You can pass options too:
Vue.use(VueWebsocket, "ws://otherserver:8080", {
reconnection: false
});
Use it in your components:
<script>
export default {
methods: {
add() {
// Emit the server side
this.$socket.emit("add", { a: 5, b: 3 });
},
get() {
this.$socket.emit("get", { id: 12 }, (response) => {
...
});
}
},
socket: {
// Prefix for event names
// prefix: "/counter/",
// If you set `namespace`, it will create a new socket connection to the namespace instead of `/`
// namespace: "/counter",
events: {
// Similar as this.$socket.on("changed", (msg) => { ... });
// If you set `prefix` to `/counter/`, the event name will be `/counter/changed`
//
changed(msg) {
console.log("Something changed: " + msg);
}
/* common socket.io events
connect() {
console.log("Websocket connected to " + this.$socket.nsp);
},
disconnect() {
console.log("Websocket disconnected from " + this.$socket.nsp);
},
error(err) {
console.error("Websocket error!", err);
}
*/
}
}
};
</script>
This command will build a distributable version in the dist
directory.
npm run build
npm test
Please send pull requests improving the usage and fixing bugs, improving documentation and providing better examples, or providing some testing, because these things are important.
vue-websocket is available under the MIT license.
Copyright (C) 2016 Icebob