JAVA webRtc的实现视频会议系统


这里实现的是1对1视频。多人博主也已经实现。我最初期的样式代码。


webRtc整体结构是这样的。 

JAVA webRtc的实现视频会议系统_第1张图片


发起端(sname) 向服务器发送 offer和icedata     

服务器接收到 offer和icedata    向目标端(dname) 发送  (sname)的信息

目标端(dname)接收到发起端(sname)的offer和icedata 将其绑定并且向发起端发送answer 和 icedata

这就是原理  具体怎么实现看下面代码 和 例子


Js部分 (信息传输用的json,)



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    My JSP 'index.jsp' starting page
	
	
	    
	
	
	
	
  
  
  
  	



下面是Java服务器部分(一开始写的测试 很简单 只是做转发)


package com.java.servers;

import java.io.IOException;
import java.util.*;

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

@ServerEndpoint(value="/games")
public class server {
	static List list =new ArrayList();
	@OnOpen
	public void open(Session session){
		System.out.println(session.getId()+ "open");
		list.add(session);
	}
	@OnMessage
	public void OnMessage(String message, Session session){
		System.out.println(session.getId()+":"+message);
			if(list.size()>1){
			for (int i = 0; i < list.size(); i++) {
				if(!list.get(i).getId().equals(session.getId())){
					try {
						list.get(i).getBasicRemote().sendText(message);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}
	}
	@OnClose
	public void close(Session session){
		list.remove(session);
	}
}


项目结构图

JAVA webRtc的实现视频会议系统_第2张图片


我的MyEclipse是2013的 tomcat也是 7.几的 jdk7.

一定要导入 tomcat Runtime 包

websocket-api.jar 在tomcat lib文件目录下有 复制进去就可以了


项目下载链接 http://download.csdn.net/detail/ares_basic/8070183


你可能感兴趣的:(JAVA webRtc的实现视频会议系统)