0.0.40 • Published 10 months ago
vue-peer v0.0.40
Vue Peer
With this package, you can have video calls along with two or multi-person chat communication. You can easily bind and display your streams in any video element you want.
Installation
Install vue-peer
with npm
npm install vue-peer
Start backend:
cd ./node_module/vue-peer/backend
node server.js
usage in front:
cd ./node_module/vue-peer/backend
node server.js
Import plugin in application vue:
import { createApp } from "vue";
import App from "./App.vue";
import { VuePeerPlugin } from "./main";
const app = createApp(App);
app.use(VuePeerPlugin); /// <=========== import plugin
app.mount("#app");
Usage in script
import { ref } from "vue";
import {
VuePeer,
VuePeerStream,
VuePeerSocketEvent,
type MessageType,
} from "./main";
interface Metadata {
user: string; // is require
role: number; // your props
}
const localStream = ref();
const peers = ref<any>([]);
const srv = ref<VuePeer<Metadata, string>>(
new VuePeer<Metadata, string>({
socketUrl: "http://localhost:8282/",
room: "test1",
// user: getUser(),
metadata: { role: 1, user: getUser()},
showLogs: true,
})
);
srv.value.on(VuePeerSocketEvent.LOCAL_VIDEO, (stream: MediaStream) => {
localStream.value = stream;
});
srv.value.on(VuePeerSocketEvent.USER_JOINED, (sessions: VuePeerStream[]) => {
peers.value = sessions.filter((f) => f.stream);
});
Usage in html:
<video v-src-object="localStream" muted autoplay></video>
<hr />
<!-- <div ref="videos"></div> -->
<p>{{ peers.length }}</p>
<template v-for="(item, index) in peers" :key="index">
<p>{{ item.user }}</p>
<video v-src-object="item.stream" muted autoplay></video>
</template>
API Reference
Get all items
vue-peer events
Event name | Parameter | Description |
---|---|---|
message | MessageType<T> | When recieve data mesage |
local_video | MediaStream | When ready your camera |
user_joined | MediaStream | When join another user |
error_in_peer | Error | error in peerjs |
error_in_socket | Error | error in socket |
error_in_navigator | Error | error in navigator |
Using enums for the above events:\
import { VuePeerSocketEvent} from "vue-peer"
Get item
Apis
Parameter | Type | Description |
---|---|---|
sendMessageTo | to:string, userMsg:T | send message to a user |
sendMessageToAll | userMsg:T | send message to all users |
- Here, T refers to the type that you provided for sending data. For example:\
const srv = ref<VuePeer<Metadata, string>>( /// T = string
new VuePeer<Metadata, string>({
socketUrl: "http://localhost:8282/",
room: "test1",
// user: getUser(),
metadata: { role: 1, user: getUser()},
showLogs: true,
})
);
srv.sendMessageToAll("hello world");
Authors
- @bakhshabadi.javad
- mail.bakhshabadi@gmail.com
0.0.40
10 months ago
0.0.20
10 months ago
0.0.21
10 months ago
0.0.22
10 months ago
0.0.23
10 months ago
0.0.24
10 months ago
0.0.25
10 months ago
0.0.37
10 months ago
0.0.15
10 months ago
0.0.38
10 months ago
0.0.16
10 months ago
0.0.39
10 months ago
0.0.17
10 months ago
0.0.18
10 months ago
0.0.19
10 months ago
0.0.30
10 months ago
0.0.31
10 months ago
0.0.32
10 months ago
0.0.10
10 months ago
0.0.33
10 months ago
0.0.11
10 months ago
0.0.34
10 months ago
0.0.12
10 months ago
0.0.35
10 months ago
0.0.13
10 months ago
0.0.36
10 months ago
0.0.14
10 months ago
0.0.26
10 months ago
0.0.9
10 months ago
0.0.27
10 months ago
0.0.8
10 months ago
0.0.28
10 months ago
0.0.29
10 months ago
0.0.7
10 months ago
0.0.6
10 months ago
0.0.5
10 months ago
0.0.4
10 months ago
0.0.3
10 months ago
0.0.2
10 months ago
0.0.1
10 months ago