今天我们要实作 Signaling server 的部分:
# 进入要放专案的路径
❯ cd ~/Desktop/WebRTC/sample
# 建立名为 1-on-1-webrtc 的资料夹
❯ mkdir 1-on-1-webrtc
# 进入 1-on-1-webrtc 资料夹内部
❯ cd 1-on-1-webrtc
# 建立 server.js 文件
❯ touch server.js
# 建立静态文件资料夹
❯ mkdir pubilc
# 建立 node.js 专案
❯ npm init --yes
# 安装必要的套件
❯ npm install express socket.io
# 在静态文件资料夹内建立 index.html 并写入 hello 用於测试
❯ echo "hello" > pubilc/index.html
在 server.js 中输入以下程序码
const express = require('express')
const app = express()
const http = require('http').createServer(app)
// 静态资源
app.use('/', express.static(__dirname + '/public/'))
// TODO: Signaling
// 启动 server 监听 8080 port
http.listen(8080, () => {
console.log(`Server running in 8080`)
})
开启终端机
❯ cd ~/Desktop/WebRTC/sample/1-on-1-webrtc
❯ node server
打开 server.js 在 TODO
的地方加入以下程序码:
const io = require('socket.io')(http, {
cors: true,
})
// 有人连线就会触发
io.on('connection', (socket) => {
// 加入房间
socket.on('join', (room) => {
socket.join(room)
socket.to(room).emit('ready', '准备通话')
})
// 转传 Offer
socket.on('offer', (room, desc) => {
socket.to(room).emit('offer', desc)
})
// 转传 Answer
socket.on('answer', (room, desc) => {
socket.to(room).emit('answer', desc)
})
// 交换 ice candidate
socket.on('ice_candidate', (room, data) => {
socket.to(room).emit('ice_candidate', data)
})
})
const express = require('express')
const app = express()
const http = require('http').createServer(app)
// 静态资源
app.use('/', express.static(__dirname + '/public/'))
const io = require('socket.io')(http, {
cors: true,
})
// 有人连线就会触发
io.on('connection', (socket) => {
// 加入房间
socket.on('join', (room) => {
socket.join(room)
socket.to(room).emit('ready', '准备通话')
})
// 转传 Offer
socket.on('offer', (room, desc) => {
socket.to(room).emit('offer', desc)
})
// 转传 Answer
socket.on('answer', (room, desc) => {
socket.to(room).emit('answer', desc)
})
// 交换 ice candidate
socket.on('ice_candidate', (room, data) => {
socket.to(room).emit('ice_candidate', data)
})
})
http.listen(8080, () => {
console.log(`Server running in 8080`)
})
启动 server
node server.js
安装并部署 Livewire 的步骤没有很多,照着做不用三分钟就能完成罗!今天一样是照着官方文件带大...
应该是上上篇的内容吧!关於如何取得更详细的资料,且分类清楚。之前我爬汇率时就总是爬不到东西,所以这次...
mongoDB 除了可以让 line bot 使用之外,flask同样也可以去透过 pymongo ...
Amazon Linux 2 上解决跨来源资源共用 (CORS) 与开机自动启动 uwsgi - D...
今年的疫情蛮严重的,希望大家都过得安好,希望疫情快点过去,能回到一些线下技术聚会的时光~ 今天目标:...