application.onAppStart=function(){
application.ShareObject_ChatRoomMember = SharedObject.get("ShareObject_ChatRoomMember", false);
application.ShareObject_Boardcast = SharedObject.get("ShareObject_Boardcast", false);
application.ShareObject_PutupHand = SharedObject.get("ShareObject_PutupHand", false);
application.ShareObject_ChatRoomMessage = SharedObject.get("ShareObject_ChatRoomMessage", false);
application.ShareObject_ChatRoomVideo = SharedObject.get("ShareObject_ChatRoomVideo", false);
application.ShareObject_Attribute_OnLineUserList = SharedObject.get("OnLineUserList", false);
application.ShareObject_NetStream = SharedObject.get("ShareObject_NetStream", false);
application.boardcastList = new Array();
application.onLineUserList = new Array();
application.rejectUserList = new Array();
application.putupHandList = new Array();
application.sharedBoardData = new Array();
application.sharedBoardDataList = new Array();
application.userStreamPublisher = new Array();
}
application.onConnect=function(client,userInfo, Maximum){
var len = application.onLineUserList.length;
if(len > Maximum)
{
this.rejectConnection(client);
return;
}
for(var i=0; i < application.rejectUserList.length; i++)
{
if(application.rejectUserList[i] == userInfo.Member_User.UserID)
{
this.rejectConnection(client);
return;
}
}
if(len > 0)
{
for(var i=0; i < len; i++)
{
if(application.onLineUserList[i].Member_User.UserID == userInfo.Member_User.UserID)
{
this.rejectConnection(client);
return;
}
}
}
this.acceptConnection(client);
client.userInfo = userInfo;
application.onLineUserList.push(userInfo);
sendUserList();
var len = application.sharedBoardDataList.length;
//将画板轨迹加入轨迹列表中
client.AddTrackToSharedBoardData = function(track)
{
application.sharedBoardData.push(track);
}
//获取画板轨迹列表
client.GetTrackData = function()
{
client.call("FmsCallbackHandler", null,"callBackGetTrackData", application.sharedBoardData);
}
//获取媒体流列表
client.GetStreamData = function()
{
client.call("FmsCallbackHandler", null,"callBackGetStreamData", application.userStreamPublisher);
}
//清空画板
client.ClearSharedBoardData = function()
{
application.sharedBoardData = new Array();
}
// 发布消息
client.MessageFromClient = function(chat){
chat.CreateDatetime = new Date();
chat.FromIP = client.ip;
chat.FromPC = application.hostname;
// client.call("FmsCallbackHandler", null,"callBackSendMessage", chat);
application.ShareObject_ChatRoomMessage.setProperty("ShareObject_ChatRoomMessage", chat);
}
//拒绝用户登录
client.RejectUser = function(RejectUserID){
//application.rejectUserList.push(RejectUserID);
RejectUserHandler(RejectUserID);
}
//发送发布媒体流请求
client.AskUserPublishStream = function(client,userInfo){
callClientToPublishVideoStream(client,userInfo);
}
//发布公告
client.PublishBoardcast = function(boardcastContent)
{
application.boardcastList.push(boardcastContent);
application.ShareObject_Boardcast.setProperty("ShareObject_Boardcast", boardcastContent);
}
//举手
client.PutupHand = function(UserID)
{
for(var i=0;i<application.putupHandList.length;i++)
{
if(application.putupHandList[i] == UserID)
{
return;
}
}
application.putupHandList.push(UserID);
application.ShareObject_PutupHand.setProperty("ShareObject_PutupHand", application.putupHandList);
}
//删除举手
client.RemovePutupHand = function(UserID)
{
for(var i=0;i<application.putupHandList.length;i++)
{
if(application.putupHandList[i] == UserID)
{
application.putupHandList.splice(i,1);
break;
}
}
application.ShareObject_PutupHand.setProperty("ShareObject_PutupHand", application.putupHandList);
}
//发布用户媒体流
client.PublishRemoteUserVideo = function(remoteUser){
application.userStreamPublisher.push(remoteUser);
ClientPublishVideoStream(remoteUser);
}
//关闭媒体流
client.CloseMediaStream = function(remoteUser){
RemoveStream(remoteUser);
}
//发送发布媒体流请求
client.SendPublishRemoteUserVideoRequest = function(operationer, remoteUser){
requestClientToPublishVideoStream(operationer, remoteUser);
}
client.RejectPublishMediaStream = function(operationer, remoteUser){
SentRejectInfoToOperationer(operationer, remoteUser);
}
}
application.onDisconnect=function(client){
removeLeftUser(client.userInfo);
if(client.userInfo != null)
RemoveStream(client.userInfo.Member_User.UserID);
sendUserList();
if(application.clients.length <= 0)
{
application.sharedBoardData = new Array();
}
}
function sendUserList(){
application.ShareObject_ChatRoomMember.setProperty("ShareObject_ChatRoomMember", application.onLineUserList);
}
function RejectUserHandler(RejectUserID){
var leng=application.clients.length;
for(var i=0;i<leng;i++){
if(application.onLineUserList[i].Member_User.UserID == RejectUserID){
application.disconnect(application.clients[i]);
break;
}
}
}
function requestClientToPublishVideoStream(operationer, remoteUser){
var leng=application.clients.length;
for(var i=0;i<leng;i++){
if(application.clients[i].userInfo.Member_User.UserID == remoteUser.UserID){
application.clients[i].call("FmsCallbackHandler", null,"callbackRequestToPublishMediaStream", operationer, remoteUser.streamType);
break;
}
}
}
function ClientPublishVideoStream(remoteUser){
var leng=application.clients.length;
for(var i=0;i<leng;i++){
application.clients[i].call("FmsCallbackHandler", null,"ReceiveStream", remoteUser);
}
}
function SentRejectInfoToOperationer(operationer, remoteUser){
var leng=application.clients.length;
for(var i=0;i<leng;i++){
if(application.clients[i].userInfo.Member_User.UserID == operationer){
application.clients[i].call("FmsCallbackHandler",null,"callbackReceiveRejectInfo", remoteUser);
break;
}
}
}
function removeLeftUser(userInfo){
for(var i=0;i<application.onLineUserList.length;i++){
if(application.onLineUserList[i] == userInfo){
application.onLineUserList.splice(i,1);
break;
}
}
}
function RemoveStream(UserID)
{
for(var i=0; i < application.userStreamPublisher.length; i++)
{
if(application.userStreamPublisher[i].UserID == UserID)
{
for(var j=0;j<application.clients.length;j++){
application.clients[j].call("FmsCallbackHandler", null,"RemoveStream", UserID,application.userStreamPublisher[i].streamType);
}
application.userStreamPublisher.splice(i,1);
break;
}
}
}
fms视频会议系统服务端asc文件
最新推荐文章于 2019-10-04 22:06:51 发布