123456790 发表于 2022-3-26 10:35:06

基于nodejs实现音视频的SkyRTC

简介

一个Node.js编写的WebRTC服务器端库,为服务器端库,需要配合客户端库SkyRTC-client共同使用,用于搭建基于WebRTC和WebSocket技术的在线音频、视频聊天室
SkyRTC前端库SkyRTC-client

SkyRTC-client
简单示例

NPM安装

执行如下命令从npm进行安装:
      $ npm install skyrtc 监听服务器

      var express = require('express');       var app = express();       var server = require('http').createServer(app);       var SkyRTC = require('skyrtc').listen(server);       var port = process.env.PORT || 3000;       server.listen(port); 监听WebRTC事件

SkyRTC继承自EventEmitter, 可以通过如下语法监听事件:
      SkyRTC.rtc.on('eventName', function(params) {         //...        }); 内置事件



[*] new_connect
[*] new_peer
[*] remove_peer
[*] socket_message
[*] ice_candidate
[*] offer
[*] answer
new_connect

新用户与服务器建立WebSocket连接时触发
参数:


[*] socket——新建立的WebSocket连接实例
new_peer

用户加入房间后触发
参数:


[*] socket——用户使用的WebSocket连接实例
[*] room——房间名称
remove_peer

用户关闭连接后触发
参数:


[*] socket——用户使用的WebSocket连接实例
socket_message

客户端向服务器端发送消息,且非自定义事件格式时触发
参数:


[*] socket——用户使用的WebSocket连接实例
[*] msg——发送的消息内容
ice_candidate

接收到ice candidate信令时触发
参数:


[*] socket——用户使用的WebSocket连接实例
[*] candidate——ice candidate信令数据
offer

接收到offer信令时触发
参数:


[*] socket——用户使用的WebSocket连接实例
[*] offer——offer信令数据
answer

接收到answer信令时触发
参数:


[*] socket——用户使用的WebSocket连接实例
[*] answer——answer信令数据
接口



[*] getRooms
[*] broadcastInRoom
[*] broadcast
[*] getSocket
[*] on
getRooms

用户获取当前服务器上所有房间信息
参数: 无
返回值:


[*] rooms——所有房间名称的数组
getSocket

通过socket的id获得socket实例
参数:


[*] id——socket的id
返回值:


[*] socket——WebSocket实例
broadcastInRoom

在房间中广播消息
参数:


[*] room——被广播消息的房间名称
[*] data——消息的具体内容
[*] errorCb——广播失败时的回调函数
返回值: 无
broadcast

向服务器上的所有用户广播消息
参数:


[*] data——消息的具体内容
[*] errorCb——广播失败时的回调函数
返回值: 无
on

向服务器上的事件绑定处理器
参数:


[*] eventName——被绑定的事件名称
[*] callback——被绑定的事件触发时的回调函数
返回值: 无
自定义事件

在SkyRTC中可以自定义事件,在前端页面使用WebSocket发送信息时,以如下JSON格式发送信息:
      {           "eventName": "yourOwnEventName",           "data": {               //自定义事件数据            }       }   在后台通过监听同名事件来进行处理:
      SkyRTC.rtc.on("yourOwnEventName", function(data){           //data将是前台所传输的数据        });   自定义事件请不要与上述SkyRTC原生事件重名

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 基于nodejs实现音视频的SkyRTC