Ubuntu 14.04 64bit上编译安装MonaServer并测试

2024-03-18 15:38

本文主要是介绍Ubuntu 14.04 64bit上编译安装MonaServer并测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.安装依赖和要求
MonaServer基于C++ 11编写, 比如会用到std::thread, std::unique_ptr, 要求GCC版本至少为4.8.2
对于Ubuntu 14.04.2来说, 这是满足的


另外依赖OpenSSL和LuaJIT库
sudo apt-get install libssl-dev
LuaJIT采用源码安装方式, 官网地址
http://luajit.org/download.html
推荐从GitHub上面下载最新源码安装,master就是当前稳定版分支,当前是LuaJIT-2.0.3

git clone http://luajit.org/git/luajit-2.0.git
我发现git资源下载失败,就改为2.0.3版本的源码包下载
wget http://luajit.org/download/LuaJIT-2.0.3.tar.gz
tar zxf LuaJIT-2.0.3.tar.gz
cd LuaJIT-2.0.3
make
sudo make install

2.下载源码编译
git clone https://github.com/MonaSolutions/MonaServer
cd MonaServer
make
如果编译出错, 使用下面的命令清除
make clean
编译完成后,使用
tree -L 2

我们会看到如下目录结构

我们看到除了生成可执行文件MonaServer以外, 各个目录下面会生成一个tmp临时目录用来存放编译生成的中间文件*.o, 最重要的目录是MonaServer, 另两个目录MonaBase和MonaCore仅是提供动态库调用.



3.配置
源码中没有发现配置文件MonaServer.ini, 将会使用默认值. 我们也可以在安装目录手动生成一个配置文件MonaServer.ini
MonaServer.ini中配置项解释:
host: clients和other servers看到的域名或是ip
socketBufferSize: socket接收和发送缓冲区字节大小
threads: Mona线程池线程个数, 通常等于或是大于CPU的virtual or physic core数, 默认会自动探测CPU核数
[application]
dir:包含data和www的目录
[servers]
port:接收其它incoming Servers连接的端口, 否则无法与其它Servers建立连接.注意Servers之间的连接是unencrypted TCP方式, 该端口应该在防火墙内部
targets: 启动时要连接的MonaServer地址, 分号分隔, 每10秒建立一次连接, url中的query部分包含token,比如
targets=192.168.0.2:1936?name=master&arg=val;192.168.0.3:1936
将会生成server对象的动态性质server.name,server.arg
[RTMFP]
port: 侦听incoming RTMFP request的端口,默认1935
keepaliveServer: servers之间keepalive包周期性发送的时间间隔(单位是秒),默认15s, 5s-255s都是合法的
[RTMP]
port: 侦听incoming RTMP request的端口,默认1935
[HTTP]
port: 侦听incoming HTTP request的端口,默认80
timeout: 当没有数据接收时,服务器kill掉所在connection的最长时间, 默认7秒
index: HTTP协议中默认的index文件名, 假如指定, 每个connection将被redirect到此index文件
[WebSocket]
timeout: 当没有数据接收时,服务器kill掉所在connection的最长时间, 默认120秒
[logs]
directory: 写日志文件的目录,默认MonaServer/logs
name: 日志文件名称, 默认log
rotation: 在logs目录下存放日志文件个数

下面是MonaServer.ini的一个样本
;MonaServer.ini
socketBufferSize = 114688
[RTMFP]
port = 1985
keepAlivePeer = 10
keepAliveServer = 15
[logs]
name=log
directory=C:/MonaServer/logs

4.启动
MonaServer包含一些启动参数, 命令行选项仅用作开发和测试情况下, 查看完整的启动参数, 使用

sudo ./MonaServer -h


下面以管理员权限启动MonaServer
sudo ./MonaServer --daemon [--pidfile=/var/run/MonaServer.pid]
下面以命令行方式启动MonaServer:
sudo ./MonaServer --pidfile=/tmp/MonaServer.pid



5.测试
Flash client使用经典的NetConnection方式连接MonaServer
_netConnection.connect("rtmfp://localhost/");
端口默认1935, 如果你在MonaServer.ini另有配置,请添加在localhost之后
下面的路径参数允许你连接到要有的Server Application
_netConnection.connect("rtmfp://localhost/myApplication");
下面我们打算测试MonaServer的功能, 按照MonaServer/FunctionalTests/README.txt的提示, 我们在可执行程序所在目录下面创建两个子目录www和data, 创建相应的符号链接
cd /home/taoyx/program/MonaServer/MonaServer
mkdir -p www
mkdir -p data
ln -s /home/taoyx/program/MonaServer/FunctionalTests/www/FunctionalTests  /home/taoyx/program/MonaServer/MonaServer/www/FunctionalTests
ln -s /home/taoyx/program/MonaServer/FunctionalTests/data/FunctionalTests  /home/taoyx/program/MonaServer/MonaServer/data/FunctionalTests
下面启动MonaServer:

sudo ./MonaServer --pidfile=/tmp/MonaServer.pid


在浏览器中打开
http://localhost/FunctionalTests/FunctionalTests.html
每次点击一个测试项目,运行完后,再选择下一个测试项目,再继续测试.目前发现后面的rtmfp等无法测试通过,需要研究源码,待后续研究.




最后使用Ctrl+C中断MonaServer,结束功能性测试.


参考文献
[1].http://blog.chinaunix.net/uid-11344913-id-4976154.html
[2].http://bbs.chinaffmpeg.com/forum.php?mod=viewthread&tid=254&extra=

[3].http://www.monaserver.ovh/installation.html


这篇关于Ubuntu 14.04 64bit上编译安装MonaServer并测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822818

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时