在直播APP制作时如何设置直播软件聊天发言部分可见的功能

在直播APP制作时聊天功能是直播软件中的重要功能,在开发中经常涉及根据用户的不同分类对收发消息进行不同的处理。 处理方式如下:
1.在用户进入房间链接socket时,根据用户的属性进入特定房间

        if(socket.usertype == 60){//新建当前房间的超管频道和场控频道,用于消息发送
            socket.join(data.roomnum+‘_60‘);
        }else if(socket.usertype == 40){
            socket.join(data.roomnum+‘_40‘);
        }    

2.在用户发消息时,判断发消息用户类型,并根据类型向1个或多个特定分类房间内发消息(切记不要发送重复,尽量不要让每个用户进入多个特定房间)

                    clientRedis.hget( "super",socket.uid,function(error,res){
                            if(error) return;
                            if(res != null){
                                var data_str2={
                                                "msg":[
                                                    {
     "_method_":"SystemNot",
                                                        "action":"1",
            "ct":‘‘+dataObj[‘msg‘][0][‘ct‘],
                                         "msgtype":"4"
                                                    }
                                                ],
                                                "retcode":"000000",
                                                "retmsg":"OK"
                                            };
    process_msg(io,socket.roomnum,JSON.stringify(data_str2));
                                console.log(1);
                            }else{          clientRedis.hget("isspeak",socket.roomnum,function(error,res){
                                    if(error) return;
                                    if(res == 1 || socket.usertype == 40 || socket.usertype == 50 ){
                                        clientRedis.hget(socket.roomnum + "shutup",socket.uid,function(error,res){
                                            if(error) return;
                                            if(res != null){
                                                var time = Date.parse(new Date())/1000;
                                                if((time < parseInt(res))){
                                                    var newData  = dataObj;
                                                    newData[‘retcode‘] = ‘409002‘;                                          socket.emit(‘broadcastingListen‘,[JSON.stringify(newData)]);
                                                }else{//解除禁言
                                        clientRedis.hdel(socket.roomnum + "shutup",socket.uid);                                         process_msg(io,socket.roomnum,data_str);
                                                    console.log(2);
                                                    //消息记录
                                                    //LV-2019-03-25
                                        //clientRedis.h(socket.roomnum + "shutup",socket.uid);
                                                    // if(socket.uid != socket.roomnum){
                                                        // var timea = Date.parse(new Date());
                                                        // console.log(msg);
                                                        // clientRedis.hset(‘msglist_‘+socket.stream,timea,JSON.stringify(msg));
                                                    // }
                                                }
                                            }else{
                                                var timea = Date.parse(new Date());                                 process_msg(io,socket.roomnum,data_str);
                                                console.log(3);
                                                //消息记录
                                                //LV-2019-03-25
                                                // if(socket.uid != socket.roomnum){
                                                    // console.log(msg);
                                                    // clientRedis.hset(‘msglist_‘+socket.stream,timea,JSON.stringify(msg));
                                                // }

3.在改变用户状态时,需要让用户退出特定房间

                        //设置为管理员的加入管理员房间 反之踢出管理员房间
                        if(socket.usertype == 50 ){
                            if(msg.action ==1){
                                //设为管理
                                sockets[msg.touid].usertype = 40;
    sockets[msg.touid].join(socket.roomnum+"_40");
                            }else{
                                //取消管理
                                sockets[msg.touid].usertype = 30;
                                var room = socket.roomnum+"_40";
                                sockets[msg.touid].leave(room);
                            }
                            process_msg(io,socket.roomnum,data_str);
                        }

4.在用户退出房间时,要同时将用户的特定房间属性退出

                socket.leave(socket.roomnum);
                socket.leave(socket.roomnum+"_40");
                socket.leave(socket.roomnum+"_60");

以上就是在直播APP制作时聊天功能得重要介绍,在开发中经常涉及根据用户的不同分类对收发消息进行不同的处理方式,小编针对此功能就介绍到这,后续还会有更多此类功能介绍,关注本博主,会持续为大家更新开发技巧。
声明:本篇文章为小编原创文章,转载请注明出处及作者。

原文地址:https://blog.51cto.com/14302750/2389261

时间: 2024-11-05 14:56:58

在直播APP制作时如何设置直播软件聊天发言部分可见的功能的相关文章

不同编码格式对直播app制作的影响

直播app制作过程中会涉及到视频分辨率的问题,常见的视频分辨率格式有高清.超清现在还有了蓝光,不同分辨率的直播画面对视频格式的要求也不同,视频直播的质量要求对视频码率的要求非常高. 视频码率的压缩率比较高,解码运算的运算量比较大,所以系统会直接用CPU进行解码,这种方式称之为软解.除了软解码外还有硬解码,硬解码是指通过显卡的视频加速功能对视频进行解码,将CPU从繁重的视频解码中解放出来,使电脑具备流畅播放高清视频的能力. 软解码的应用场景在于显卡本身不受支持或者部分不支持硬件解码的前提下,将解压

直播APP源码搭建简易直播平台及个人开发直播系统的难点

如何用直播APP源码搭建一个简易的直播平台 一.前端推流1.推流可以采用命令: ffmpeg -i input -vcodec copy -acodec copy -f flv rtmp://127.0.0.1/live/cgstream0input 可以是实时流,也可以是文件,如果是文件 需要加上-re.运用中需要将127.0.0.1换成rtmp所在机器的ip地址. 用命令推流时间戳信息不能任意修改,想要达到一个满意的结果还是要用代码实现. 主要方法代码如下: 1.打开视频流,filename

直播app什么是定制开发?什么是二次开发?

每个人或多或少都看过一些直播,有的可能是通过直播APP看游戏直播,有的是看电商直播,还有的可能是看体育直播,现在直播已经应用到我们生活的方方面面,直播这种形式比纯文字或图片的方式更生动,更能让用户接受.对于直播APP开发,有定制开发和二次开发两种方式,不少人在开发直播APP时都不知道该选择哪一种?每一种方式的优缺点都不了解,今天小编就整理了一下二次开发和定制开发的区别,希望对大家有所帮助. 首先介绍一下什么是定制开发?什么是二次开发?通常在直播app制作时提到的二次开发,是基于具有开源性质的直播

【如何快速的开发一个完整的iOS直播app】(原理篇)

一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的. 直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程. 二.了解直播 热门直播产品 映客,斗鱼,熊猫,虎牙,花椒等等 直播效果图 直播效果.jpeg 1.一个完整直播ap

如何快速的开发一个完整的iOS直播app(原理篇)

前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播. 一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频

超强教程:如何搭建一个 iOS 系统的视频直播 App?

现今,直播市场热火朝天,不少人喜欢在手机端安装各类直播 App,便于随时随地观看直播或者自己当主播.作为开发者来说,搭建一个稳定性强.延迟率低.可用性强的直播平台,需要考虑到部署视频源.搭建聊天室.优化界面等难题,具备一定的难度与挑战! 那假如自己搭建一个直播平台,该如何下手呢?莫慌,本文就给大家详细介绍如何搭建一个 iOS 系统的直播 App? 1 流程熟悉 1.1 选择协议 想要实现直播 App ,我们得先知道如何播放从服务器传来的视频数据. 目前,主流视频直播网站使用的协议多为 RTMP(

精品推荐!一对一视频直播APP完全功能列表大全!

1.一套完整的一对一视频直播app功能大全1.聊天 私聊.聊天室.点亮.推送.黑名单等;2.礼物 普通礼物.豪华礼物.红包.排行榜.第三方充值.内购.礼物动态更新.提现等:3.直播列表 关注.热门.最新.分类直播用户列表等:4.自己直播 录制.推流.解码.播放.美颜.心跳.后台切换.主播对管理员操作.管理员对用户等:5.房间逻辑 创建房间.进入房间.退出房间.关闭房间.切换房间.房间管理员设置.房间用户列表等:6.用户逻辑 普通登陆.第三方登陆.注册.搜索.修改个人信息.关注列表.粉丝列表.忘记

直播APP开发是怎么搭建的直播平台?

直播的热潮从未退去,直播APP开发也随着直播的兴起火爆起来,这项实现了无数人"镜头下的梦想"的技术到底是怎样搭建起直播平台的呢? 直播APP开发的基础是直播源码,在直播源码搭建出下,直播APP开发才将直播平台转化未现实,具体步骤如下: 1.采集 采集的技术难度与设备息息相关.一般来说,iOS系统的设备采集是比较简单的,而Android设备则要做些机型适配工作,最麻烦的是传统PC上的各种奇葩摄像头驱动.所以一般会建议放弃PC只支持手机主播,从实际应用来看,也确实没有用电脑摄像头直播的必要

淘宝直播APP引导拉新奖励你怎么看

在2019年春节前几天,淘宝直播APP在外面成为淘宝独立直播体系的平台上线,最近一段时间,淘宝小二想尽方法推进APP,提供了更多的资源坑位及关于APP的下载游戏等,有很多主播和淘宝直播机构都找到我们在公众号"机构汇"交流,怎样通过引导拉新下载淘宝直播APP获得更多流量,下面跟大家分享引导的入口:引导粉丝下载"淘宝直播app",会有哪些奖励?1.三月初我们将推出"下载排行风云榜",对于进入到榜单的主播们,将奖励淘宝直播app的弹窗.焦点图.及频道坑