Signaling server, WS, login, room creation

This commit is contained in:
Thomas
2020-07-27 21:44:36 +02:00
parent 0ef9ba675b
commit c1787cacba
25 changed files with 1114 additions and 123 deletions

View File

@@ -0,0 +1,64 @@
const connection = new WebSocket('ws://localhost:8181/socket')
// const connection = new WebSocket('wss://echo.websocket.org')
export default function createSignalPlugin () {
return store => {
connection.onopen = function () {
console.log('WS connected')
store.dispatch('app/signalConnected')
}
connection.onerror = function (error) {
console.log('WS error ' + error)
store.dispatch('app/signalError', error)
}
connection.onmessage = function (message) {
console.log('WS message', message.data)
var data = JSON.parse(message.data)
switch (data.type) {
case 'offer':
store.dispatch('rtc/offer', data.offer, data.name)
break
case 'answer':
store.dispatch('rtc/answer', data.answer, data.name)
break
case 'candidate':
store.dispatch('rtc/candidate', data.candidate, data.name)
break
case 'leave':
store.dispatch('rtc/leave')
break
case 'login':
store.dispatch('app/login', data.message)
break
case 'serverInfos':
store.dispatch('app/serverStatus', data)
break
case 'createRoom':
store.dispatch('app/createRoom', data.message)
break
case 'error':
store.dispatch('app/error', data.message)
break
default:
break
}
}
}
}
export function send (message) {
console.log('WS send', message)
connection.send(JSON.stringify(message))
}