• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

starrtc-server: 免费IM系统,IM即时通信消息系统(含一对一文字聊天,群聊,聊天室), ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

starrtc-server

开源软件地址:

https://gitee.com/starRTC/starrtc-server

开源软件介绍:

服务端程序免费私有部署

以下服务端均完全免费(采用C语言开发),无鉴权,可用于腾讯云,阿里云或局域网内部署,现已开放:

服务端功能备注
voipServer一对一视频通话需要搭配msgServer使用
msgServer单聊(如文字聊天),私信,信令
chatDBServer离线消息存储
groupServer群聊如果只需要单聊,不需要群聊的话,不用启动
chatRoomServer多人聊天室
liveSrcServer多人视频会议 RTMP推流
liveVdnServer互动连麦直播,vdn分发网络
liveProxyServerRTSP 拉流服务端
videoRecServer录制录像功能
groupPushHttpProxy系统消息及群操作功能

#f03c15 web-supported目录里面是支持web端的服务端程序与自签名证书。do-not-support-web目录里面的服务端程序不支持web端。

支持CentOS 64bit,Ubuntu 64bit。Windows上请自行安装虚拟机(请使用桥接)或docker测试。

#f03c15 部署步骤(请切换为root用户或者用sudo执行):

第1步:下载服务端程序: git clone https://github.com/starrtc/starrtc-server.git

	然后进入相应目录,直接执行chmod +x *.sh && ./start.sh 即部署成功!如果想单独运行,请继续下面的步骤。

第2步:进入相应目录,给所有服务端程序加可执行权限: chmod +x *Server

第3步:部署各服务端程序,具体如下:

其中.log后缀文件为日志文件,可通过命令tail -f xxx.log查看相关日志。

voip服务端部署

后台启动nohup ./voipServer > voipServer.log 2>&1 &刚开始为了验证是否启动成功可以不后台启动而是通过运行 ./voipServer 直接看输出日志是否成功成功了以后就可以后台启动

注:也需要部署msgServer,用于传输呼叫,接听等消息。

IM服务端部署

IM全套服务,分为3个服务端程序,分别是:

消息服务端msgServer、离线消息数据服务端chatDBServer,群管理服务端groupServer,分别启动即可。

只需要单聊的,不需要启动groupServer。

可以保持自己原有的im系统不变,用我们的im系统作为voip等服务的信令服务。

后台启动nohup ./msgServer     > msgServer.log 2>&1 &nohup ./chatDBServer  > chatDBServer.log 2>&1 &nohup ./groupServer   > groupServer.log 2>&1 &

chatRoom服务端部署

后台启动nohup ./chatRoomServer > chatRoomServer.log 2>&1 &

liveSrc服务端部署

后台启动nohup ./liveSrcServer > liveSrcServer.log 2>&1 &

RTMP推流测试:可打开安卓客户端,新建一个会议室,点击RTMP推流,填上RTMP URL后,点击推流即可。然后用其它第3方播放器如VLC就可以打开该RTMP URL观看会议画面了。

同理,可以在直播间推流,用vlc打开就可以观看直播了。

liveVdn服务端部署

互动直播,观众不限人数

后台启动nohup ./liveVdnServer > liveVdnServer.log 2>&1 &

录制服务端(videoRecServer)部署

目前用于liveSrcServer和voipServer的视频录像功能,目前为测试版,输出为ts文件,支持自定义切片或不切片,音频只支持AAC格式。

videoRecServer默认是切片模式,30s一片,若不切片,请在程序同级目录中新建starrtc.conf文本文件,写入recSegMode=off,即关闭切片模式,不切片的时候切片序号一直为0。

文件目录格式为:

在线会议或互动直播:

./RECFOLDER/liveChannels/用户名/resSessionId_用户名_切片序号.ts,如./RECFOLDER/liveChannels/tom/1573119917990_tom_0.ts

一对一视频通话(VOIP):

./RECFOLDER/voips/用户名/resSessionId_用户名_切片序号.ts,如./RECFOLDER/voips/tom/1573119917990_tom_0.ts

其中,sessionId在移动端SDK中获取得到,详见android文档。

后台启动nohup ./videoRecServer > videoRecServer.log 2>&1 &

系统消息及群操作功能服务

用户使用AEC高级模式的情况下使用,比如给某用户发送系统消息(例如购买消费成功通知),或给某个群的全部用户发送群系统消息(例如某人进群、退群)。

请注意该服务仅供内网其他服务使用,不要将19922端口暴露到外网!

push系统消息:toUsers需要发送消息的所有用户用逗号隔开msg 需要发送的文本内容digest 需要发送的文本内容的摘要用于用户不在线时的push推送使用http://www.xxx.com:19922/pushSystemMsgToUsers?toUsers=userId1,userId2,userId3,...&msg=xxxx&digest=xxxxpush群消息(全员):   http://www.xxx.com:19922/pushGroupMsg?groupId=xxx&msg=xxxx

下面五个和群有关的接口,在客户端sdk同样有实现,但通过这些接口,服务端可以主动给群服务器同步群成员,或对群成员进行其他操作,请您根据实际需求来选取合适的群成员同步策略。

同步群成员:	groupId: 群idgroupList:   所有群成员用逗号隔开不传groupList表示清空这个群的成员ignoreList 对该群设置了消息免打扰的群成员id用逗号隔开http://www.xxx.com:19922/syncGroupList?groupId=xxx&groupList=userId1,userId2,userId3,...&ignoreList=userId1,userIdx,...添加群成员:   addedUsers: 要添加进的群的所有用户id用逗号隔开http://www.xxx.com:19922/addUsersToGroup?groupId=xxx&addedUsers=userId1,userId2,userId3,...删除群成员:   deledUsers: 需要从群内删除的所有用户id用逗号隔开http://www.xxx.com:19922/delUsersFromGroup?groupId=xxx&deledUsers=userId1,userId2,userId3,...设置免打扰:	ignoreList: 对该群设置消息免打扰(不接收群消息)的所有用户id用逗号隔开http://www.xxx.com:19922/setPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...取消免打扰:	ignoreList: 对该群取消免打扰(接收群消息)的所有用户id用逗号隔开http://www.xxx.com:19922/unsetPushIgnore?groupId=xxx&ignoreList=userId1,userIdx,...

拉流服务端部署

用于拉取第三方rtsp流(RTMP流暂未开放),转换为starRTC协议后转发到liveSrcServer,然后就可以在各终端(Android,iOS,PC和web)的在线会议或互动直播中播放这个流了。

后台启动nohup ./liveProxyServer > liveProxyServer.log 2>&1 &

测试方法:首先找到一个可以正常播放的rtsp流(也可以使用示例程序里面的默认测试流),然后可以打开安卓示例程序,打开设置-》第3方流测试-》新建一个流,填一下名字,和流的rstp地址(也可以不填直接使用默认的测试流),同时选择该流是在直播中播放,还是在会议中播放。 然后去直播间或会议室就可以看到拉的视频流画面了。

也可以自己使用HTTP方式调用:

  • 1 创建channelId并拉流(streamType暂时只支持rtsp),接口返回channelId:

http://www.xxx.com:19932/push?streamType=rtsp&streamUrl=rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov&roomLiveType=0&roomId=xxxx&extra=xxxxx

其中roomId和extra为可选参数

  • 2 拉流到指定的channelId:

http://www.xxx.com:19932/push?streamType=rtsp&streamUrl=rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov&channelId=xxxx

  • 3 停止拉流(不删除channelId,仍在列表中存在):

http://www.xxx.com:19932/close?channelId=xxxx

  • 4 停止拉流,同时删除channelId:

http://www.xxx.com:19932/delete?channelId=xxxx

需要开放端口

服务端端口web端需开放端口
msgServer19903(tcp)29991(tcp):https信任测试
voipServer10086(udp) 44446(udp):P2P通讯10087(tcp):websocket 10088(udp):webrtc 29992(tcp):https信任测试
chatRoomServer19906(tcp)29993(tcp):https信任测试
liveSrcServer19931(udp)19934(tcp):websocket 19935(udp):webrtc 29994(tcp):https信任测试
liveVdnServer19928(udp)19940(tcp):websocket 19941(udp):webrtc 29995(tcp):https信任测试
liveProxyServer19932(tcp)

测试方法

下载客户端示例程序

打开"设置->服务器配置",然后填写你自己的服务器ip即可(注意不要修改端口号,如果是域名不需要添加“http://”前缀)。

客户端开发

基于私有部署服务端开发自己的客户端,参见开发文档

示例代码参见:https://docs.starrtc.com/en/download/

服务端开发

打开配置文件starrtc.conf,修改里面的aecurl的值(目前不支持https地址),开发请参考server-api目录里面的示例代码。

Contact

QQ : 2162498688

邮箱:[email protected]

手机: 186-1294-6552

微信:starRTC

QQ群:807242783

遇到问题请先根据 https://github.com/starrtc/starrtc-server/wiki 自查,还不能解决请加群反馈。

更新记录

https://github.com/starrtc/starrtc-server/wiki/Changelog

参考

端口连接性测试

阿里云修改安全组规则

腾讯云安全组操作指南


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap