licode服务端总结

Posted bloglearning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了licode服务端总结相关的知识,希望对你有一定的参考价值。

1.系统架构

技术图片

(来源:https://github.com/lynckia/licode/issues/335)

2.nuve模块


技术图片

(修改:https://blog.csdn.net/u012908515/article/details/53940787)

app.post(‘/rooms‘, roomsResource.createRoom);
app.get(‘/rooms‘, roomsResource.represent);

app.get(‘/rooms/:room‘, roomResource.represent);
app.put(‘/rooms/:room‘, roomResource.updateRoom);
app.patch(‘/rooms/:room‘, roomResource.patchRoom);
app.delete(‘/rooms/:room‘, roomResource.deleteRoom);

app.post(‘/rooms/:room/tokens‘, tokensResource.create);

app.post(‘/services‘, servicesResource.create);
app.get(‘/services‘, servicesResource.represent);

app.get(‘/services/:service‘, serviceResource.represent);
app.delete(‘/services/:service‘, serviceResource.deleteService);

app.get(‘/rooms/:room/users‘, usersResource.getList);

app.get(‘/rooms/:room/users/:user‘, userResource.getUser);
app.delete(‘/rooms/:room/users/:user‘, userResource.deleteUser);

2.1签名验证

app.get(‘*‘, nuveAuthenticator.authenticate);
app.post(‘*‘, nuveAuthenticator.authenticate);
app.put(‘*‘, nuveAuthenticator.authenticate);
app.patch(‘*‘, nuveAuthenticator.authenticate);
app.delete(‘*‘, nuveAuthenticator.authenticate);

每一次客户端请求都会进行签名验证。

2.2cloudHandle.js

技术图片

cloudHandler提供了nuve对EC的调用:获取房间中的所有用户,删除房间,删除指定用户;以及EC对nuve的调用:删除token,EC的添加、状态更新,删除以及保活。

调用方法通过RPCMQ实现,他们共同维护了两个队列,队列A用来传递调用消息,Nuve发布调用消息后,并且会维护一个调用方法和回调函数的字典;EC从队列A中获取调用消息后执行调用方法,并将结果消息push进队列B;Nuve从队列B中获取调用结果消息,并从字典中得到回调函数并执行callback,删除对应字典值。

2.3服务、房间、用户管理

技术图片

hh


以上是关于licode服务端总结的主要内容,如果未能解决你的问题,请参考以下文章

licode学习之编译篇--1

licode学习之编译篇--1

WebRTC MCU( Multipoint Conferencing Unit)服务器调研

licode学习之编译篇--3

Licode Erizo.Stream 视频帧质量

Licode-DtlsSocket源码分析