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(

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值