🚀 优质资源分享 🚀
一、信令系统
信令系统主要用来进行信令的交换
在通信双方彼此连接、传输媒体数据之前,它们要通过信令服务器交换一些信息,如规范协商
若 A 与 B 要进行音视频通信,那么 A 要知道 B 已经上线了,同样,B 也要知道 A 在等着与它通信呢
只有双方都知道彼此存在,才能由一方向另一方发起音视频通信请求,并最终实现音视频通话
客户端代码如下:
**第一步:**首先弹出一个输入框,要求用户写入要加入的房间
**第二步:**通过 io.connect()
建立与服务端的连接
**第三步:**再根据 socket
返回的消息做不同的处理
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>信令系统title>
head>
<body>
body>
<script src="/socket.io/socket.io.js">script>
<script>
var isInitiator;
// 弹出一个输入窗口
room = prompt('Enter room name:');
// 与服务端建立 socket 连接
const socket = io.connect();
// 如果房间不空,则发送 "create or join" 消息
if (room !== '') {
console.log('Joining room ' + room);
socket.emit('create or join', room);
}
// 如果从服务端收到 "full" 消息
socket.on('full', (room) => {
console.log('Room ' + room + ' is full');
});
// 如果从服务端收到 "empty" 消息
socket.on('empty', (room) => {
isInitiator = true;
console.log('Room ' + room + ' is empty');
});
// 如果从服务端收到 “join" 消息
socket.on('join', (room) => {
console.log('Making request to join room ' + room);
console.log('You are the initiator!');
});
// 如果从服务端收到 “log" 消息
socket.on('log', (array) => {
console.log.apply(conso