概述
BBB是由一个专业的团队在一起进行开发,并且组成一个广泛的社区在一起广泛的探讨开发的各个环节:设计,开发,测试,文档,定位,wikis编辑,还有就是最重要的,对第三方的支持!本文档探讨了如何在BBB服务器端构建BBB开发环境,一旦构建成功,你可以进行开发和扩展本地的服务器并且成为改善bbb社区的一分子!
BBB有很多组件,核心的组件是:bbb-web,bbb-client,bbb-apps,bbb-voice和桌面共享,你并不需要明白所有的东西去开发或者扩展某个组件,例如:你对改善bbb客户端很感兴趣,你需要最低限度的明白bbb客户端以及一个整体上的架构认知!
为了帮助建立必须的开发环境,在bbb-conf里面已经预置了很多构建脚本!用脚本来完成大部分的工作的同时,随着你对BBB越来越熟悉,你需要看下bbb-conf的源码(在/usr/local/bin/bbb-conf),它们是如何工作的!你对BBB了解的越多,你就越容易的改变或者改善项目!
基本技能预备知识
1,对BBB大致框架有一个理解!
2,明白git是如何工作的!
一个可工作的服务器
这是显而易见的,在构建BBB开发环境之前,要确保BBB服务都可以跑起来!
需要可运行sudo命令
在构建BBB开发环境时,为了确认,需要可以输入以下命令执行:会返回当前目录下的文件列表!
构建开发环境
在BBB服务器,你需要输入以下命令初始化必须的开发工具:
- bbb-conf --setup-dev tools
当你运行上面的脚本时,会让你输入密码获得root权限,然后会执行以下操作:
1,下载并安装groovy, grails, and gradle
2,下载并安装开源的flex sdk
3,初始化openJDK
4,初始化git
5,在~/.profile添加必要的环境变量
以上步骤完成后,需要重新加载~/.profile
bbb配置脚本会在你的目录下创建一个开发目录:
签出源码
推荐使用Github,它会使你在自己的BBB源码工作,存储,更新变得简单以及有益项目的发展!
1,在github上建立账户
2,建立你的ssh keys
3,在你的github上构建一个bbb分支
4,将你的代码库拷贝到你的~/dev包里,复制完后,你会有以下目录
- /home/firstuser/dev/bigbluebutton
确保你在主分支工作!输入以下命令:
- cd ~/dev/bigbluebutton
- git status
会显示:
- # On branch master
- nothing to commit (working directory clean)
主分支包含了大部分的新开发的东西,以及它可能会中断,如果想在0.8发布版工作,需要签出 v0.8 tag!
如果想修复有些问题,以及在v0.8上开发,需要输入以下命令:
- git checkout -b fixing-issue-100 v0.8
可以看到:
- Switched to a new branch 'fixing-issue-100'
输入:
显示:
- # On branch fixing-issue-100
- nothing to commit (working directory clean)
客户端开发
随着开发环境的签出以及克隆,我们就做好了开发的准备!
下面将带领你修改bbb客户端
构建客户端的开发环境,输入以下命令:
- bbb-conf --setup-dev client
这个命令修改BigBlueButton nginx设置,Http请求加载客户端,由下面提供:
- ~/dev/bigbluebutton/bigbluebutton-client/bin
代替
构建客户端
现在让我们来构建客户端,注意现在我们不做任何改变,我们构建客户端来确保它可以工作!
- cd ~/dev/bigbluebutton/bigbluebutton-client
首先,让我们来构建本地环境(语言翻译包),如果你没有修改本地环境,你只需输入下面的命令一次:
- cd ~/dev/bigbluebutton/bigbluebutton-client
- ant locales
这一步骤大约花费10分钟的时间,取决于你电脑的速度!
然后,来构建客户端
这个命令会在~/dev/bigbluebutton/bigbluebutton-client/bin 这个目录下构建客户端!
在这之后,将浏览器指向你的BigBlueButton服务器,并登录演示页面。客户端应该正常启动。它是如何加载您的客户机(而不是默认的客户机),当你运行: bbb-conf --setup-dev client,它创建了一个条目在\etc\bigbluebutton\nginx\client_dev,内容如下:
- location /client/BigBlueButton.html {
- root /home/firstuser/dev/bigbluebutton/bigbluebutton-client;
- index index.html index.htm;
- expires 1m;
- }
-
- # BigBlueButton Flash client.
- location /client {
- root /home/firstuser/dev/bigbluebutton/bigbluebutton-client;
- index index.html index.htm;
- }
在\etc\bigbluebutton\nginx\ ,下面创建了一个连接,从client.nginx 到 client_dev,换句话,当一个请求到达/client时,nginx现在从你的开发目录里提供客户端!
注意:当你构建客户端开发环境时,bbb客户端的配置文件从下面加载:~/dev/bigbluebutton/bigbluebutton-client/bin/conf/config.xml,这意味着使用bbb-conf命令对默认的config.xml做到任何改变,都不会应影响到你开发环境中的config.xml.
更改
构建客户端前,让我们做一个更改
- 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本地地址,
当你编辑,MainApplicationShell.mxml,在第311行,您将看到以下文本
- <mx:Label text="{ResourceUtil.getInstance().getString('bbb.mainshell.copyrightLabel2',[appVersion])}" id="copyrightLabel2"/>
编辑这段文本, ' -- BigBlueButton Rocks!!' ,如下:
- <mx:Label text="{ResourceUtil.getInstance().getString('bbb.mainshell.copyrightLabel2',[appVersion]) + ' -- BigBlueButton Rocks!'}" id="copyrightLabel2"/>
现在,再次重新构建bbb客户端
- cd ~/dev/bigbluebutton/bigbluebutton-client
- ant
当完成时,使用客户端加入演示会议,你会看到,在版权的地方加入了“-- BigBlueButton Rocks!”信息!
如果你没看到你的变化,尝试清理你的浏览器的缓存和尝试再次加载客户机!
切换到打包好的客户端
切换到内置的bbb版本,使用以下命令:
- sudo ln -s -f /etc/bigbluebutton/nginx/client /etc/bigbluebutton/nginx/client.nginx
- sudo /etc/init.d/nginx restart
切换回开发的版本,输入以下命令:
- sudo ln -s -f /etc/bigbluebutton/nginx/client_dev /etc/bigbluebutton/nginx/client.nginx
- 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的顶部编辑
- <application uri="rtmp://<HOST-IP>/bigbluebutton" host="http://<HOST-IP>/bigbluebutton/api/enter" />
改变成下面:
- <application uri="rtmp://<HOST-IP>/bigbluebutton" host="conf/join-mock.xml" />
这样,就可以点击flexbuilder里的Run/Debug 按钮来进行登录!
本文有些地方可能写的有失误的地方,望海涵~,转载请表明出处http://yangactive.iteye.com/blog/1625771
分享到:
相关推荐
BigBlueButton是用于在线学习的开源Web会议系统。 我们相信,每个使用Web浏览器的学生都应能够获得高质量的在线学习经验。 我们打算使用BigBlueButton使其成为可能。 BigBlueButton支持幻灯片(PDF和LibreOffice...
BigBlueButton是一个强大的开源项目,专门针对远程教育和在线协作设计。它提供了丰富的功能,使得网络教学和视频会议变得高效且互动性强。这个系统的核心目标是创造一个接近真实教室体验的虚拟环境,让教师和学生...
基于开源的Web开发架构——ZOPE_Python.pdf
在Android平台上进行离线地图开发是一项重要的技术,它允许用户在无网络连接的情况下查看和使用地图数据。Bigplanet是一款开源的Android离线地图解决方案,它为开发者提供了丰富的功能和自定义选项,使得创建本地化...
开源云的变革与创新——第三届中国开源云计算大会在京举行.pdf
3. **Jenkins**:作为一款用Java编写的开源自动化服务器,Jenkins能够自动化各种软件开发过程,如构建、测试、部署等。它支持持续集成,监控定时任务,是CI/CD流程中的重要工具。 4. **Selenium**:Selenium是一个...
超全 Lotus Domino Xpages 开发资料——lotus开发同步关系数据库归类资料 大全通过分类提供给大家,请大家根据需要下载 全开源,并且一看就懂,不保留 https://blog.csdn.net/weijia3624/article/details/107013401
【标题】"PHP实例开发源码——TalkPiece php开源垂直社区 v1.0 beta.zip" 涉及到的是一个基于PHP编程语言的开源社区项目,TalkPiece,它是一个专为特定兴趣群体或领域设计的社交平台。这个版本是v1.0 beta,意味着它...
智能家居客户端实现——Android Studio版是将现代科技与日常生活相结合,为用户提供便捷、智能的生活环境的项目。基于Android Studio开发的这个客户端,旨在让用户通过智能手机就能远程操控家中的各种智能设备,如...
ASP论坛网站实例开发源码——RAICO v1.1 是一款基于ASP技术的开源威客程序,用于构建在线任务发布和竞标平台。这个源码提供了详细的实例开发,可以帮助开发者理解如何利用ASP来构建类似的网站功能。下面我们将深入...
BigBlueButton(BBB)是一款专为在线教育和远程协作设计的开源Web会议系统,它提供了丰富的功能,包括音频视频交互、屏幕共享、实时白板、聊天、录制等,极大地促进了远程学习和协作的效率。本次我们将深入探讨其...
【标题】"PHP实例开发源码——php 即时网络聊天 iWeb开源三剑客之iWebIM.zip" 提供的是一套基于PHP语言实现的即时通讯系统源代码,是iWeb开源项目中的一个重要组成部分,被称为“iWebIM”。这个项目主要用于构建在线...
这个压缩包文件名为"PHP实例开发源码——下载系统 开源正式版.zip",显然它包含了用于构建一个基于PHP的下载系统的完整源代码。PHP是一种广泛使用的开源服务器端脚本语言,尤其在Web开发领域中非常流行。下面我们将...
总的来说,通过深入研究`PHP实例开发源码——MyBB 开源php论坛系统.zip`,我们可以全面了解PHP Web开发的各个环节,提升自己的编程技能,同时对社区应用的构建有更深入的理解。无论是对于个人学习还是团队开发,MyBB...
5. **错误处理与日志记录**:在客户端开发中,错误处理和日志记录是非常重要的部分。良好的错误处理能确保程序在遇到问题时能够优雅地退出,而日志记录则有助于调试和分析系统运行状态。 6. **安全与加密**:考虑到...
"安卓Android源码——[安卓开源]Oschina客户端.zip" 这个标题表明我们正在讨论的是一个关于安卓(Android)操作系统的开源项目,具体来说是Oschina客户端的源代码。Oschina是中国的一个知名的开源技术社区,它提供了...
开源机器人操作系统——ROS (张建伟等著
《深度探索Linux操作系统——系统构建和原理解析》是一本专为那些希望深入了解Linux操作系统内核和系统构建的读者量身打造的专业书籍。它详细阐述了Linux操作系统的内部工作机制,涵盖了从内核设计到系统服务的...
【标题】"安卓Android源码——(精)基于asmack开发的开源IM客户端.zip" 提供的是一个基于asmack库开发的开源即时通讯(IM)客户端的源代码。ASMack是一个专门为Android平台优化的XMPP(Extensible Messaging and ...