Skip to content

LingyuCoder/SkyRTC-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published