webrtc java api_WEBRTC--简单入门实例

WebRTC 是一个支持网页浏览器进行实时语音对话或视频对话的技术 ,,最近工作需要研究了一下,写一个demo供大家参考,原理方面的东西大家可以百度一下,需要注意的是demo目前只支持火狐 因为谷歌目前必须是https 访问 才可以获取视频信息.系统环境为:tomcat8+jdk7

websocket

package com.li.web;

import java.io.IOException;

import java.util.HashMap;

import java.util.HashSet;

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;

@ServerEndpoint("/video/{roomId}/{userId}")

public class VideoScoket {

/**

* 存放房间与用户

*/

private static HashMap> usersRoom = new HashMap>();

/**

* 打开websocket

* @param session websocket的session

* @param uid 打开用户的UID

*/

@OnOpen

public void onOpen(Session session, @PathParam("roomId")String roomId, @PathParam("userId")String userId) {

Set users = usersRoom.get(roomId);

if(users== null ){

users = new HashSet();

}

if(users.size()>=2){

sendMessage(session, "peopleMax");//目前只支持两个人之间的通讯 ,所以不能超过两个人

}else{

User user = new User();

user.setId(userId);

user.setSession(session);

users.add(user);

usersRoom.put(roomId,users);

}

}

/**

* websocket关闭

* @param session 关闭的session

* @param uid 关闭的用户标识

*/

@OnClose

public void onClose(Session session, @PathParam("roomId")String roomId, @PathParam("userId")String userId) {

Set users = usersRoom.get(roomId);

if(users!=null){

for (User user:users) {

if(user.getId().equals(userId)){

users.remove(user);

return;

}else if(!user.getId().equals(userId)){

sendMessage(user.getSession(), "bye");//退出之后,发送给另一个人信息,以便让他断开视频连接

return;

}

}

}

}

/**

* 收到消息

* @param message 消息内容

* @param session 发送消息的session

* @param uid

*/

@OnMessage

public void onMessage(String message,Session session, @PathParam("roomId")String roomId, @PathParam(

你可能感兴趣的:(webrtc,java,api)