开源视频会议bigbluebutton开发(4)——构建开发环境,客户端开发

转自:http://yangactive.iteye.com/blog/1625771html

概述nginx

BBB是由一个专业的团队在一块儿进行开发,而且组成一个普遍的社区在一块儿普遍的探讨开发的各个环节:设计,开发,测试,文档,定位,wikis编辑,还有就是最重要的,对第三方的支持!本文档探讨了如何在BBB服务器端构建BBB开发环境,一旦构建成功,你能够进行开发和扩展本地的服务器而且成为改善bbb社区的一分子!git

BBB有不少组件,核心的组件是:bbb-web,bbb-client,bbb-apps,bbb-voice和桌面共享,你并不须要明白全部的东西去开发或者扩展某个组件,例如:你对改善bbb客户端很感兴趣,你须要最低限度的明白bbb客户端以及一个总体上的架构认知!github

为了帮助创建必须的开发环境,在bbb-conf里面已经预置了不少构建脚本!用脚原本完成大部分的工做的同时,随着你对BBB愈来愈熟悉,你须要看下bbb-conf的源码(在/usr/local/bin/bbb-conf),它们是如何工做的!你对BBB了解的越多,你就越容易的改变或者改善项目!web

 

基本技能预备知识shell

 

1,对BBB大体框架有一个理解!windows

2,明白git是如何工做的!api

 

一个可工做的服务器浏览器

 

这是显而易见的,在构建BBB开发环境以前,要确保BBB服务均可以跑起来!缓存

 

须要可运行sudo命令

 

在构建BBB开发环境时,为了确认,须要能够输入如下命令执行:会返回当前目录下的文件列表!

 

Java代码    收藏代码
  1. sudo ls  

 

构建开发环境

 

在BBB服务器,你须要输入如下命令初始化必须的开发工具:

 

Java代码    收藏代码
  1. bbb-conf --setup-dev tools  

 当你运行上面的脚本时,会让你输入密码得到root权限,而后会执行如下操做:

 

1,下载并安装groovy, grails, and gradle

2,下载并安装开源的flex sdk

3,初始化openJDK

4,初始化git

5,在~/.profile添加必要的环境变量

以上步骤完成后,须要从新加载~/.profile

 

Java代码    收藏代码
  1. source ~/.profile  

 bbb配置脚本会在你的目录下建立一个开发目录:

 

Java代码    收藏代码
  1. /home/firstuser/dev  

 签出源码

 

推荐使用Github,它会使你在本身的BBB源码工做,存储,更新变得简单以及有益项目的发展!

1,在github上创建帐户

2,创建你的ssh keys

3,在你的github上构建一个bbb分支

4,将你的代码库拷贝到你的~/dev包里,复制完后,你会有如下目录

 

Java代码    收藏代码
  1. /home/firstuser/dev/bigbluebutton  

 确保你在主分支工做!输入如下命令:

 

Java代码    收藏代码
  1. cd ~/dev/bigbluebutton  
  2. git status  

 会显示:

 

Java代码    收藏代码
  1. # On branch master  
  2. nothing to commit (working directory clean)  

 主分支包含了大部分的新开发的东西,以及它可能会中断,若是想在0.8发布版工做,须要签出 v0.8 tag!

若是想修复有些问题,以及在v0.8上开发,须要输入如下命令:

 

Java代码    收藏代码
  1. git checkout -b fixing-issue-100 v0.8  

 能够看到:

 

Java代码    收藏代码
  1. Switched to a new branch 'fixing-issue-100'  

 输入:

 

Java代码    收藏代码
  1. git status  

 显示:

 

Java代码    收藏代码
  1. # On branch fixing-issue-100  
  2. nothing to commit (working directory clean)  

 

客户端开发

 

随着开发环境的签出以及克隆,咱们就作好了开发的准备!

下面将带领你修改bbb客户端

构建客户端的开发环境,输入如下命令:

 

Java代码    收藏代码
  1. bbb-conf --setup-dev client  

 这个命令修改BigBlueButton nginx设置,Http请求加载客户端,由下面提供:

 

Java代码    收藏代码
  1. ~/dev/bigbluebutton/bigbluebutton-client/bin  

 代替

 

Java代码    收藏代码
  1. /var/www/bigbluebutton  

 

 构建客户端

 

如今让咱们来构建客户端,注意如今咱们不作任何改变,咱们构建客户端来确保它能够工做!

 

Java代码    收藏代码
  1. cd ~/dev/bigbluebutton/bigbluebutton-client  

 

 首先,让咱们来构建本地环境(语言翻译包),若是你没有修改本地环境,你只需输入下面的命令一次:

 

Java代码    收藏代码
  1. cd ~/dev/bigbluebutton/bigbluebutton-client  
  2. ant locales  

 

 这一步骤大约花费10分钟的时间,取决于你电脑的速度!

而后,来构建客户端

 

Java代码    收藏代码
  1. ant  

 

 这个命令会在~/dev/bigbluebutton/bigbluebutton-client/bin 这个目录下构建客户端!

在这以后,将浏览器指向你的BigBlueButton服务器,并登陆演示页面。客户端应该正常启动。它是如何加载您的客户机(而不是默认的客户机),当你运行: bbb-conf --setup-dev client,它建立了一个条目在\etc\bigbluebutton\nginx\client_dev,内容以下:

 

Java代码    收藏代码
  1. location /client/BigBlueButton.html {  
  2.               root    /home/firstuser/dev/bigbluebutton/bigbluebutton-client;  
  3.               index  index.html index.htm;  
  4.               expires 1m;  
  5.       }  
  6.   
  7.       # BigBlueButton Flash client.  
  8.       location /client {  
  9.               root    /home/firstuser/dev/bigbluebutton/bigbluebutton-client;  
  10.               index  index.html index.htm;  
  11.       }  

 

 在\etc\bigbluebutton\nginx\ ,下面建立了一个链接,从client.nginx 到 client_dev,换句话,当一个请求到达/client时,nginx如今从你的开发目录里提供客户端!

注意:当你构建客户端开发环境时,bbb客户端的配置文件从下面加载:~/dev/bigbluebutton/bigbluebutton-client/bin/conf/config.xml,这意味着使用bbb-conf命令对默认的config.xml作到任何改变,都不会应影响到你开发环境中的config.xml.

 

更改

 

构建客户端前,让咱们作一个更改

 

Java代码    收藏代码
  1. vi ~/dev/bigbluebutton/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml  

 

 上面的命令使用vi作出改变。若是你在Windows和使用BigBlueButton VM开发,你或许会发现安装samba,这样你就更容易能够经过Windows资源管理器访问你的文件,使用Windows编辑器。构建Samba,输入下面命令。它会共享你的开发目录,能够从windows访问,有一些编辑器,好比myeclipse只能访问驱动器,而不是网络共享,为了把网络共享映射到windows驱动器,好比H:,打开个人电脑,点击映射网络驱动器,输入\\<ip>\firstuser,ip是vm本地地址,

 

Java代码    收藏代码
  1. bbb-conf --setup-samba  

 

 当你编辑,MainApplicationShell.mxml,在第311行,您将看到如下文本

 

Java代码    收藏代码
  1. <mx:Label text="{ResourceUtil.getInstance().getString('bbb.mainshell.copyrightLabel2',[appVersion])}" id="copyrightLabel2"/>  

 

 编辑这段文本, ' -- BigBlueButton Rocks!!' ,以下:

 

Java代码    收藏代码
  1. <mx:Label text="{ResourceUtil.getInstance().getString('bbb.mainshell.copyrightLabel2',[appVersion]) + ' -- BigBlueButton Rocks!'}" id="copyrightLabel2"/>  

 

 如今,再次从新构建bbb客户端

 

Java代码    收藏代码
  1. cd ~/dev/bigbluebutton/bigbluebutton-client  
  2. ant  

 

 当完成时,使用客户端加入演示会议,你会看到,在版权的地方加入了“-- BigBlueButton Rocks!”信息!



 若是你没看到你的变化,尝试清理你的浏览器的缓存和尝试再次加载客户机!

切换到打包好的客户端

 

切换到内置的bbb版本,使用如下命令:

 

Java代码    收藏代码
  1. sudo ln -s -f /etc/bigbluebutton/nginx/client /etc/bigbluebutton/nginx/client.nginx  
  2.  sudo /etc/init.d/nginx restart  

 

 切换回开发的版本,输入如下命令:

 

Java代码    收藏代码
  1. sudo ln -s -f /etc/bigbluebutton/nginx/client_dev /etc/bigbluebutton/nginx/client.nginx  
  2.   sudo /etc/init.d/nginx restart  

 

 使用flex builder

1,安装flex bulider在你的电脑上!

2,在你的虚拟机构建 samba,挂载VM drive

3,在flexbuilder中,导入bbb-client,选择vm中的bigbluebutton-client目录,例如:W:\dev\source\bigbluebutton\bigbluebutton-client

4,从VM中的~/dev/tools目录拷贝出sdk加载到flex builder的sdk目录里,能够看到以下图:在flexbuilder中,点击Window -> Preferences -> Installed Flex SDKs,增长刚刚拷贝的sdk.



 5,右键项目,Properties -> Flex Compiler,flex版本要转换成3.5,而且要点击flex 3 兼容模式!



 6,右键项目,Properties -> Flex Build Path,点击mx only组件集,确保添加了libs文件,源文件夹以及输出文件夹!



 7,点击属性窗口,Flex Modules,增长全部你想和bbb-client编译的模块,这些模块都是mxml文件在 src/ directory 里



 8,包浏览器导航到默认包后,右键BigBlueButton.mxml,设置为默认应用程序!

9,编译flexbuilder中的客户端,而后经过输入bbb虚拟机IP,来打开客户端,如今运行的客户端应该是你flexBuilder环境里面的!

 

当你不能使用flexbuilder 里的run去登陆客户端,你也不能用debuger,上面的方法是被限制的!能够安装下面的来办,

在客户端的代码里,src/conf/config.xml的顶部编辑

 

Java代码    收藏代码
  1. <application uri="rtmp://<HOST-IP>/bigbluebutton" host="http://<HOST-IP>/bigbluebutton/api/enter" />  

 

 改变成下面:

 

Java代码    收藏代码
  1. <application uri="rtmp://<HOST-IP>/bigbluebutton" host="conf/join-mock.xml" />  

 这样,就能够点击flexbuilder里的Run/Debug 按钮来进行登陆!

本文有些地方可能写的有失误的地方,望海涵~,转载请代表出处http://yangactive.iteye.com/blog/1625771

相关文章
相关标签/搜索