| | |
| | | import { ref, computed, onBeforeUnmount } from 'vue' |
| | | |
| | | /** ✅ 你的 WS 地址前缀(后面拼 userId) */ |
| | | const WS_BASE = 'wss://wrj.shuixiongit.com/ws/chat?userId=' |
| | | // const WS_BASE = 'ws://218.202.104.82:38201/ws/chat' |
| | | const WS_BASE = 'ws://220.177.172.27:8100/webrtc/ws/chat' |
| | | |
| | | const uid = ref('7') |
| | | const peerUid = ref('8') |
| | | const uid = ref('2021474568497131521') |
| | | const peerUid = ref('2021474815063486465') |
| | | |
| | | const connected = ref(false) |
| | | const state = ref('idle') // idle | calling | ringing | in-call |
| | |
| | | |
| | | function createPC() { |
| | | pc = new RTCPeerConnection({ |
| | | iceServers: [{ urls: 'stun:stun.l.google.com:19302' }], |
| | | iceServers: [{ urls: 'stun:stun.l.google.com:19302' }, |
| | | { urls: 'stun:stun.l.google.com:19302' }, |
| | | { urls: 'stun:stun1.l.google.com:19302' }, |
| | | { urls: 'stun:stun.stunprotocol.org:3478' }, |
| | | // 添加多个公共TURN服务器以提高跨网络连接成功率 |
| | | { urls: ['turn:freeturn.net:80', 'turn:freeturn.net:443'], username: 'free', credential: 'free' }, |
| | | // 备用TURN服务器 |
| | | { urls: 'turn:turn.cloudlifter.io:443', username: 'webrtc', credential: 'webrtc' }], |
| | | }) |
| | | |
| | | pc.onicecandidate = (e) => { |
| | |
| | | function connectWS() { |
| | | if (ws) ws.close() |
| | | |
| | | ws = new WebSocket(WS_BASE + encodeURIComponent(uid.value)) |
| | | ws = new WebSocket(WS_BASE, "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoyMDIxNDc0NTY4NDk3MTMxNTIxLCJ1c2VyX2tleSI6Ijc5MDE3ZGEwLTZlZjItNGU0MS05MzdiLWFiZjM4NzRkNTYwMSIsInVzZXJuYW1lIjoieW9uZ2h1MSJ9.hEoBlIejSOyn44aA1FZrtlVHsrbmA84KX_5Qq2Mz7slO4jNlbJkFvzuomT7EqI9QigucNzULDjfiA9IHPfww8Q") |
| | | |
| | | ws.onopen = () => { |
| | | connected.value = true |