基于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]