xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 523KB
    文件類型: .rar
    金幣: 2
    下載: 3 次
    發布日期: 2021-06-18
  • 語言: Java
  • 標簽: java??webSocket??webRTC??

資源簡介

基于webRTC和websocket簡單實現多人視頻會議功能,前端純JS代碼,后臺JAVA代碼,主要實現功能暫未考慮效率,測試4人視頻會議延遲極低可控制在200毫秒內

資源截圖

代碼片段和文件信息

package?com.scbd.bdpl.controller.multimedia;

import?java.io.IOException;
import?java.util.Collection;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.Set;

import?javax.websocket.OnClose;
import?javax.websocket.OnMessage;
import?javax.websocket.OnOpen;
import?javax.websocket.Session;
import?javax.websocket.server.PathParam;
import?javax.websocket.server.ServerEndpoint;

import?com.alibaba.fastjson.JSON;
import?com.alibaba.fastjson.JSONobject;

/**
?*?websocket服務
?*?@author?Ivan
?*
?*/

@ServerEndpoint(“/websocket/{username}“)
public?class?SocketServer?{
private?static?Map?userOnlineMap?=?new?HashMap();

//連接時
@OnOpen
public?void?open(Session?session@PathParam(“username“)String?username)?{
for?(String?onlineUsername?:?userOnlineMap.keySet())?{
if(onlineUsername.equals(username))?{//用戶已存在
System.out.println(“用戶已存在或用戶名重復“);
return;
}
}
//轉發給其他人上線消息
JSONobject?json=new?JSONobject();
json.put(“type“?“userConnection“);
json.put(“data“?username);
forwardMessageExceptMe(session?json.toString());
System.out.println(username?+?“open“);
userOnlineMap.put(usernamesession);//添加用戶進入在線列表
}

//收到消息
@OnMessage
public?void?OnMessage(String?message?Session?session@PathParam(“username“)String?username)?{
//獲得消息并轉為JSON
JSONobject?json=JSON.parseobject(message);
String?type=(String)?json.get(“type“);

//判斷消息
switch?(type)?{
//查詢在線用戶
case?“getOnlineUserName“:
replyOnlineUserName(session);
break;
//轉發消息給sendTo
default:
String?sendBy=(String)?json.get(“sendBy“);
String?sendTo=(String)?json.get(“sendTo“);
if(sendBy!=null&&sendTo!=null)?{
forwardMessage(userOnlineMap.get(sendTo)?message);
}
break;
}

}

@OnClose
public?void?close(Session?session@PathParam(“username“)String?username)?{
System.out.println(username?+?“close“);
try?{
userOnlineMap.remove(username?session);
session.close();
//轉發給其他人下線消息
JSONobject?json=new?JSONobject();
json.put(“type“?“userClose“);
json.put(“data“?username);
forwardMessageExceptMe(session?json.toString());
}?catch?(IOException?e)?{
// e.printStackTrace();
}
}

//回復在線用戶
private?void?replyOnlineUserName(Session?session)?{
Set?OnlineUserNames=userOnlineMap.keySet();
JSONobject?json=new?JSONobject();
json.put(“type“?“userOnlineList“);
json.put(“data“?OnlineUserNames);
forwardMessage(sessionjson.toString());
}

//轉發消息特定目標
private?void?forwardMessage(Session?sessionString?message)?{
try?{
session.getBasicRemote().sendText(message);
}?catch?(IOException?e)?{
// e.printStackTrace();
}
}
//轉發消息給所有人
private?void?forwardMessage(Collection?sessionsString?message)?{
for?(Session?session?:?sessions)?{
forwardMessage(sessionmessage);
}
}
//轉發消息給除自己以外的所有人
private?void?forwardMessageExceptMe(Session?sessionString?message)?{
for?(Session?sessions?:?userOnlineMap.values())?{
if(!sessions.equals(session)

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????535212??2018-08-06?16:45??webRTC多人視頻會議室\fastjson-1.2.41.jar

?????文件??????84349??2018-09-12?17:25??webRTC多人視頻會議室\jquery-2.1.4.min.js

?????文件???????3287??2018-10-29?16:05??webRTC多人視頻會議室\SocketServer.java

?????文件????????856??2018-10-29?16:28??webRTC多人視頻會議室\video.html

?????文件???????6322??2018-10-29?16:08??webRTC多人視頻會議室\video.js

?????文件????????194??2018-11-12?16:22??webRTC多人視頻會議室\說明.txt

?????目錄??????????0??2018-11-12?16:20??webRTC多人視頻會議室

-----------?---------??----------?-----??----

???????????????630220????????????????????7


評論

共有 條評論