• This repository has been archived on 30/May/2024
  • Stars
    star
    248
  • Rank 163,560 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A server-side webRTC lib to build real-time communications in browser

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原生事件重名

##项目完整实例 SkyRTC-demo

More Repositories

1

SkyRTC-demo

A simple demo used SkyRTC
JavaScript
672
star
2

SkyRTC-client

A browser-side webRTC lib to build real-time communications in browser
JavaScript
107
star
3

peertc

peer to peer message and file sender
JavaScript
87
star
4

toybox

各种玩具的列表
71
star
5

learn-react

JavaScript
40
star
6

react-calculator

一个React实现的计算器
JavaScript
33
star
7

reading

把博客里面的阅读笔记单独出来,方便管理
Shell
20
star
8

NodeBlog

一个nodejs的基于mongodb数据库的博客管理系统,支持多人共同管理发布博客,支持评论,点赞,收藏等简单功能,开发中
JavaScript
18
star
9

lingyu-theme

This is a hexo theme
CSS
17
star
10

FE-share

前端分享的PPT
JavaScript
11
star
11

FiveChess

五子棋,有AI,canvas学习中
JavaScript
10
star
12

react-lunar-calendar

React 农历日历
JavaScript
10
star
13

learn-canvas

JavaScript
9
star
14

blog

天镶的博客
JavaScript
9
star
15

HTML5_GAME

一个HTML5开发的游戏,写着玩,用的都是汉堂公司炎龙骑士团2的素材
JavaScript
6
star
16

react-webpack-boilerplate

A boilerplate of React and Webpack
JavaScript
6
star
17

react-markdown-editor

React Markdown 编辑器,自带存储到localstorage
JavaScript
4
star
18

atom-language-xtpl

XTemplate support in Atom
CoffeeScript
3
star
19

sky_layouts

Some common page layout
2
star
20

peertc-server

Server side of Peertc, use to send files and messages by webrtc datachannel
JavaScript
2
star
21

js-snippets

js代码片段
JavaScript
2
star
22

HiChat2

Web IM工具HiChat v2——开发中
JavaScript
2
star
23

lingyucoder.github.io

JavaScript
2
star
24

jquery-alert

基于jQuery的提示框组件,提供alert、confirm、prompt
HTML
1
star
25

kissy-anime-plugin

一个模仿kissy-anim模块的动画插件,一个轮子,造着玩
JavaScript
1
star
26

express-mock-middleware

A simple mock middleware for express
JavaScript
1
star
27

jquery-tip

一个基于jQuery的消息提示插件
CSS
1
star
28

atom-snippets

My atom snippets
CoffeeScript
1
star
29

webpack2-demo

A demo of webpack2
JavaScript
1
star