• This repository has been archived on 30/May/2024
  • Stars
    star
    107
  • Rank 323,587 (Top 7 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated almost 10 years ago

Reviews

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

Repository Details

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

SkyRTC-client

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

##SkyRTC客户端库 SkyRTC

可使用npm进行安装:

$ npm install skyrtc

##SkyRTC实例 SkyRTC-demo是一个基于SkyRTC搭建的多房间的在线音频、视频、文字聊天室,并能够共享文件

##SkyRTC-client的使用 通过在HTML中引入JavaScript文件的方式引入:

<script type="text/javascript" src="/SkyRTC-client.js"></script>

可通过如下方式监听SkyRTC-client的事件:

SkyRTC.on('someEvent', function(params) {
    //...
});

连接后台WebSocket服务器:

SkyRTC.connect("ws:" + window.location.href.substring(window.location.protocol.length).split('#')[0], window.location.hash.slice(1));

##方法

  • connect
  • on
  • sendFile
  • shareFile
  • sendMessage
  • broadcast
  • sendFileAccept
  • sendFileRefuse
  • createStream
  • attachStream

###connect 连接WebSocket后台服务器,建立信令交互的信道,并加入到一个房间之中

参数:

  • server——服务器地址
  • room——房间名称

返回值: 无

###on 向SkyRTC-client相关事件绑定回调函数

参数:

  • eventName——事件名称
  • callback——事件触发时的回调函数

返回值: 无

###sendFile 向所在房间中的某个特定用户请求发送文件

参数:

  • dom——包含需要被发送的文件的input[type='file']的id或者dom对象
  • socketId——接收文件的用户的id

###shareFile 向所在房间中的所有其他用户请求发送文件

参数:

  • dom——包含需要被发送的文件的input[type='file']的id或者dom对象

返回值: 无

###sendMessage 向所在房间内的某个特定用户发送消息

参数:

  • message——需要被发送的消息内容
  • socketId——接收消息用户的id

返回值: 无

###broadcast 向所在房间中的所有其他用户发送文字消息

参数:

  • msg——需要被发送的消息字符串

返回值: 无

###sendFileAccept 接收到文件发送请求后,同意接收文件

参数:

  • sendId——发送文件的id

返回值: 无

###sendFileRefuse 接收到文件发送请求后,拒绝接收文件

参数:

  • sendId——发送文件的id

返回值: 无

###createStream 创建本地视频流

参数:

  • constraints——创建的视频流的约束对象

返回值: 无

###attachStream 接收到远程视频流后,将视频流绑定到video标签上

参数:

  • stream——远程视频流对象
  • domId——需要被绑定的video标签的id

返回值: 无

##原生事件 ###连接建立

  • connected
  • socket_opened
  • socket_error
  • socket_closed
  • socket_receive_message

###信令交换

  • get_peers
  • get_ice_candidate
  • get_offer
  • get_answer
  • new_peer
  • remove_peer

###建立流

  • stream_created
  • stream_created_error

###PeerConnection相关事件

  • pc_get_ice_candidate
  • pc_opened
  • pc_add_stream
  • pc_add_data_channel

###DataChannel相关事件

  • data_channel_create_error
  • data_channel_opened
  • data_channel_closed
  • data_channel_message
  • data_channel_error

###文件发送相关

  • send_file_error
  • send_file
  • send_file_refused
  • send_file_accepted
  • send_file_chunk
  • sended_file
  • receive_file_chunk
  • receive_file
  • receive_file_ask
  • receive_file_error

##连接建立事件详解 ###connected 在于后台服务器成功创立WebSocket连接后触发

参数:

  • socket——与后台连接的WebSocket实例

###socket_opened WebSocket连接开启后触发

参数:

  • socket——与后台连接的WebSocket实例

###socket_error WebSocket连接发生错误后触发

参数:

  • error——错误对象
  • socket——与后台连接的WebSocket实例

###socket_closed WebSocket连接关闭后触发

参数:

  • socket——与后台连接的WebSocket实例

###socket_receive_message WebSocket连接接收到非自定义事件格式的信息时触发

参数:

  • socket——与后台连接的WebSocket实例
  • jsonMsg——JSON格式的message

##信令交换事件详解 ###get_peers 在获取当前房间所有用户的id后调用

参数:

  • socketIds——房间内其他用户的id字符串列表

###get_ice_candidate 在获得了ICE Candidate信令后调用

参数:

  • candidate——ICE Candidate信令数据

###get_offer 在获得offer信令后调用

参数:

  • offer——offer信令数据 ###get_answer 在获得answer信令后调用

参数:

  • answer——answer信令数据

###new_peer 在有新用户加入后调用

参数:

  • socketId:新用户的id

###remove_peer 有用户断开连接后调用

参数:

  • socketId:断开连接的用户的socket id

##建立流 ###stream_created 成功建立本地视频流时触发

参数:

  • stream——本地视频流对象

###stream_created_error 建立本地视频流失败时触发

参数:

  • error——错误对象

##PeerConnection相关事件 ###pc_opened PeerConnection成功开启后触发

参数:

  • socketId——PeerConnection所连接用户的id
  • pc——成功开启的PeerConnection实例

###pc_get_ice_candidate 获得从ICE Candidate消息时触发

参数:

  • candidate——ICE Candidate信令内容
  • socketId——PeerConnection所连接用户的id
  • pc——获得信令PeerConnection实例

###pc_add_stream 通过PeerConnection上接收到视频流后触发

参数:

  • stream——添加的流对象
  • socketId——PeerConnection所连接用户的id
  • pc——增加流的PeerConnection实例

###pc_add_data_channel 通过PeerConnection上接收到data channel后触发

参数:

  • channel——添加的data channel
  • socketId——PeerConnection所连接用户的id
  • pc——增加data channel的PeerConnection实例

##DataChannel相关事件 ###data_channel_create_error data channel创建失败时触发

参数:

  • socketId——data channel所连接用户的id
  • error——错误对象

###data_channel_opened data channel成功开启后触发

参数:

  • channel——开启的data channel实例
  • socketId——data channel所连接用户的id

###data_channel_closed data channel关闭后触发

参数:

  • channel——被关闭的data channel实例
  • socketId——data channel所连接用户的id

###data_channel_message data channel上接收到数据且非文件信令类型时触发

参数:

  • channel——接收到数据的data channel实例
  • socketId——data channel所属用户的id
  • message——json格式的接收到的具体数据信息

###data_channel_error data channel发生错误时触发

参数:

  • channel——发生错误的data channel实例
  • socketId——data channel所连接用户的id
  • error——错误对象

##文件发送相关 ###send_file 读取需要发送的文件完毕,并请求对方接收时触发

参数:

  • sendId:发送的文件id
  • socketId:接收者的id
  • file:被发送的文件对象

###send_file_error 发送方发送文件失败时触发

参数:

  • error——错误对象
  • socketId——接收者的id
  • sendId——发送失败的文件的id,为空则表示获取文件失败
  • file——发送失败的文件对象,为空则表示获取文件失败

###send_file_refused 对方拒绝接收文件时触发

参数:

  • sendId——被拒绝接收的文件id
  • socketId——接收者的id
  • file——被拒绝接收的文件

###send_file_accepted 对方同意接收文件时触发

参数:

  • sendId——被同意接收的文件id
  • socketId——接收者的id
  • file——被同意接收的文件

###send_file_chunk 文件碎片发送后触发

参数:

  • sendId——文件碎片所属文件的id
  • socketId——接收者的id
  • percent——已发送的百分比
  • file——被发送的文件对象

###sended_file 文件发送完成后触发

参数:

  • sendId——被发送的文件Id
  • socketId——接收者的id
  • file——被发送的文件对象 ###receive_file_chunk 接收到文件碎片时触发

参数:

  • sendId——接收的文件的Id
  • socketId——发送者的id
  • fileName——文件的名称
  • percent——文件接收到的百分比

###receive_file 接收完整个文件后触发

参数:

  • sendId——接收的文件的Id
  • socketId——发送者的id
  • name——接收到的文件的名称

###receive_file_ask 接收到文件发送请求后触发

参数:

  • sendId——被请求接收的文件的id
  • socketId——发送者的id
  • fileName——被请求接收的文件的名称
  • fileSize——被请求接收的文件的大小

###receive_file_error 接收文件错误时触发

参数:

  • error——错误对象
  • sendId——接收文件的id
  • socketId——发送者的id

More Repositories

1

SkyRTC-demo

A simple demo used SkyRTC
JavaScript
672
star
2

SkyRTC

A server-side webRTC lib to build real-time communications in browser
JavaScript
248
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