信令服务器房间设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信令服务器房间设置相关的知识,希望对你有一定的参考价值。
在WebRTC简介中提到信令服务器用于向中端传输数据,信令服务器是实现两个webRTC中端通信的重要角色。今天就来实现一下信令服务器。作为前端开发对于后端的东西不是很熟悉,只能使用现成的一些服务器软件和nodejs来搭建信令服务器。
业务逻辑
当两个用户要进行通信时,他们首先要创建一个房间,成功加入房间之后,双方才能交换必要的信息。
当通信的双方结束通话后,用户需要发送离开房间的消息给信令服务器,此时信令服务器需要将房间内的所有人清除;如果房间里已经没有人了,还需要将空房间销毁掉。
这样的逻辑socket.io已经帮我们实现了,我们只需要使用就行,不需要自己重新开发。
因此,我们使用nodejs+express+socket.io实现信令服务器。
创建服务器
const http = require('http');//引入http库
const express = require('express'); //引入express库
//创建HTTP服务,并侦听8980端口
const app = express();
const http_server = http.createServer(app);
http_server.listen(8080, '0.0.0.0');
1
2
3
4
5
6
7
1
2
3
4
5
6
7
首先,通过express创建一个Web应用;之后调用HTTP库的createServer()方法创建HTTP对象,即http_server;最后调用http_server对象的listen()方法侦听8080端口。通过上面的步骤就实现了一个HTTP服务。
注册socket.io的回调函数
io.sockets.on('connection', (socket) =>
//收到message时,进行转发
socket.on('message', (message) =>
//给另一端转发消息
socket.to(room).emit('message', message);
);
//收到 join 消息
socket.on('join', (room) =>
var o = io.sockets.adapter.rooms[room];
//得到房 参考技术A 房间服务器是用来创建和管理通话会话的状态维护,是双方通话还是多方通话,加入与离开房间等等,我们暂时沿用Google部署在GAE平台上的AppRTC这个房间服务器实现,该GAE App的源码可以在github.com上获取.该实现是一个基于Python的GAE应用,我们需要下载google GAE的离线开发包到我们自己的Linux服务器上来运行该项目,搭建大陆互联网环境下的房间服务器.
以上是关于信令服务器房间设置的主要内容,如果未能解决你的问题,请参考以下文章
开源SIP服务器Kamailio/OpenSIPS的三种信令负载均衡算法优化详解以及测试讨论和基于SBC信令语音均衡负载功能实现