php直播pk規則,直播源碼中的主播PK功能是如何實現的

直播行業為贏得更廣泛用戶的青睞,自然要不斷開發更有趣的玩法、模式,在直播源碼中加入主播PK功能就是一種提高直播互動性、激發用戶好勝心的方法,一方面這種方法可以吸引更多用戶觀看,增加主播的曝光率,另一方面它又能激發用戶的購買欲,增加平臺和主播的收入。

PK功能可以使用當下十分流行的Socket.IO為基礎來實現。Socket.I O 是一個面向實時 web 應用的 JavaScript 庫。它使服務器和客戶端之間實時雙向的通信成為可能。它由兩個部分組成:客戶端庫和一個面向Node.js的服務端庫。像Node.js一樣,它也是事件驅動的。并且它有一個優勢,它會自動選擇合適的雙向通信協議。我們充分利用了socket.io的優勢,實現了對直播源碼中PK功能流程的控制。

首先,對Socket.IO的App客戶端進行初始化設置,連接服務端(基礎代碼如下):

try {

IO.Options option = new IO.Options();

option.forceNew = true;

option.reconnection = true;

option.reconnectionDelay = 2000;

mSocket = IO.socket(AppConfig.getInstance().getSocketServer(), option);

mSocketHandler = new SocketHandler();

} catch (Exception e) {

e.printStackTrace();

L.e(TAG, "socket異常--->" + e.getMessage());

}

public SocketUtil connect(String liveuid, String stream) {

if (mSocket != null) {

mSocket.on(Socket.EVENT_CONNECT, mConnectListener);//連接成功

mSocket.on(Socket.EVENT_DISCONNECT, mDisConnectListener);//斷開連接

mSocket.on(Socket.EVENT_CONNECT_ERROR, mErrorListener);//連接錯誤

mSocket.on(Socket.EVENT_CONNECT_TIMEOUT, mTimeOutListener);//連接超時

mSocket.on(Socket.EVENT_RECONNECT, mReConnectListener);//重連

mSocket.on(CONN, onConn);//連接socket消息

mSocket.on(BROADCAST, onBroadcast);//接收服務器廣播的具體業務邏輯相關的消息

mSocket.connect();

mLiveuid = liveuid;

mStream = stream;

}

return this;

}

然后再與服務端實現通信。只需要簡單傳入參數,并emit到服務端,服務端接收后通過邏輯處理,向相應的App端轉發socket信息,這時,接收到消息的客戶端根據socket的method、action等特定字符判斷是否需要作出相應操作,若接收到的信息是自己需要的,則作出相應操作,否則不響應,至此,一個通訊流程就這樣完成了。

public void anchorBusy(String touid) {

if (mSocket == null) {

return;

}

mSocket.emit(SEND,

new SendSocketBean()

.param("_method_", LINK_MIC) ??//參數

.param("action", 7) ?//參數

.param("msgtype", 10) //參數

.param("touid", touid) ?//參數

.create()

);

}

通過使用Socket.I O,可以實現A客戶端與服務端與B客戶端進行連麥PK的操作,當然,Socket.IO還能做更多的事。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529836.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php中手機端ajax上拉加載更多,jQuery手機網頁上拉加載更多

手機網頁和PC網頁都可以使用的上拉加載更多內容,其中LoadingDataFn自己改為ajax加載就可以了var page 1, //分頁碼off_on false, //分頁開關(滾動加載方法 1 中用的)timers null; //定時器(滾動加載方法 2 中用的)//加載數據var LoadingDataFn function() {var …

phpcms上傳php,phpcms如何上傳視頻

phpcms如何上傳視頻?phpcms-v9上傳視頻文件時的解決方案1.不建議直接在后臺上傳視頻文件,因為視頻文件一般都比較大,直接上傳影響帶寬;可先通過ftp工具將視頻文件上傳到指定目錄,然后再后臺引入視頻文件的地址即可2.如…

護衛神怎么重啟php,護衛神·主機大師如何開啟php_opcache_護衛神

護衛神主機大師支持5.5至7.3這幾個版本開啟php_opcache擴展。一,先打開護衛神主機大師面板-常用操作-打開軟件目錄二,打開phpweb目錄,找到要開啟opcache的php版本,比如我這里要在php5.5中開啟,進入php55目錄&#xff0…

php 首頁加背景圖片,如何在頁首添加一張背景圖片

Navy主題如何在頁首添加一張圖片可以http://www.ikk.me/這樣子頂部添加背景圖片他的代碼是【點擊查看】回復內容:Navy主題如何在頁首添加一張圖片可以http://www.ikk.me/這樣子頂部添加背景圖片他的代碼是【點擊查看】看了下代碼,就是給 section 加了個 …

php裝箱,php兌現裝箱算法

php實現裝箱算法貪婪法是一種不追求最優解,只希望得到較為滿意解的方法。貪婪法一般可以快速得到滿意的解,因為它省去了為找最優解要窮盡所有可能而必須耗費的大量時間。貪婪法常以當前情況為基礎作最優選擇,而不考慮各種可能的整體情況&…

flash as3與后臺php交互用戶注冊例子,as3與PHP后臺交互2

怎么樣,是不是也很方便的實現了as3和后臺的數據傳輸?恩,現在我們的程序可以雙向交互數據了,但這只是一些簡單的數據,如果你要傳輸帶有結構的數據,(熟悉as2的人都知道loadVars可以自動解析下載數據的結構)&a…

java 去除 quot,JAVA去除web頁面傳入后臺的特殊字符工具類 | 學步園

package www.tmzskj.com.utils;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/*** 功能 過濾特殊字符,清除掉所有特殊字符* regEx 為要清除的字符* author admin**/public class StringFilterTest {public static String …

matlab傅里葉工具箱,matlab通信工具箱.pdf

matlab通信工具箱randerr 產生隨機誤碼圖樣randint 產生均勻分布的隨機整數信號源 randsrc 用預定義的字母表產生隨機矩陣wgn 產生高斯噪聲commsrc.pattern 結構模式生成句柄berawgn 非編碼的AWGN 信道的誤比特率bercoding 編碼的AWGN 信道的誤比特率berconfint 蒙特卡羅仿真下…

java迭代器cas,java提高篇(三十)-Iterator - Java 技術驛站-Java 技術驛站

迭代對于我們搞Java的來說絕對不陌生。我們常常使用JDK提供的迭代接口進行Java集合的迭代。Iterator iterator list.iterator();while(iterator.hasNext()){String string iterator.next();//do something}迭代其實我們可以簡單地理解為遍歷,是一個標準化遍歷各類…

mysqldb mysql config,安裝mysqldb python界面時找不到mysql_config

mySQLdb是一個用于mysql的python界面,但它不是mysql本身。 顯然mySQLdb需要命令“mysql_config”,所以你需要先安裝。你能否確認你是否通過從shell運行“mysql”來安裝mysql本身? 這應該給你一個“mysql:command not found”以外的…

kfcm算法matlab實現,KFCM算法分析

function [center, U, obj_fcn] KFCMClust(data, cluster_n, kernel_b,options)% FCMClust.m 采用模糊C均值對數據集data聚為cluster_n類%% 用法:% 1. [center,U,obj_fcn] KFCMClust(Data,N_cluster,kernel_b,options);% 2. [center,U,obj_fcn] KFCMClus…

matlab中的terminator模塊,2.2 Ground 及 Terminator模塊

課時:117節課時長:20.1小時課級:中級提高simulink是matlab中的一種可視化仿真工具, 是一種基于matlab的框圖設計環境,是實現動態系統建模、仿真和分析的一個軟件包,被廣泛應用于線性系統、非線性系統、數字…

matlab 柯西黎曼方程,【判斷題】柯西-黎曼方程成立是函數解析的必要條件.

參考答案如下判斷【判斷題】核糖體的沉降系數等于大小亞基沉降系數的總和。題柯【其它】We ______________________________________ (投入到各項校園課外活動中) on campus.西黎【單選題】起動機與蓄電池的連接線蓄電池與車架的搭鐵線則采用( )。 (2.0分)曼方【簡答題】作業選…

取整函數php,php取整函數三個例子

本節內容:php取整函數用法1,php取整函數 ceil -- 取最大整數float ceil ( float value )返回不小于 value 的下一個整數,value 如果有小數部分則進一位。ceil() 返回的類型仍然是 float,因為 float 值的范圍通常比 integer 要大。…

python執行過程打印,如何在pytest運行過程中看到正常的打印輸出?

喬在接受的答案中提出了一個評論 ,他問道:有沒有辦法打印到控制臺并捕獲輸出,以便它顯示在junit報告中?在UNIX中,這通常被稱為開球 。 理想情況下,開球而不是捕捉將是py.test默認。 非理想情況下&#xff0…

cfar恒虛警matlab實現,一種用于距離副瓣抑制的自適應恒虛警方法與流程

本發明涉及脈沖壓縮雷達數字信號處理技術領域。背景技術:在傳統的真空管體制雷達中,由于發射占空比受限,通過設計較低的雷達重復發射頻率實現遠距離的目標探測,但由于發射的是簡單的脈沖調制波形,重復頻率降低和脈寬加…

修改oracle數據連接數據庫,如何修改oracle數據庫的連接數

如何修改oracle數據庫的連接數查詢數據庫當前進程的連接數:select count(*) from v$process;查看數據庫當前會話的連接數:elect count(*) from v$session;查看數據庫的并發連接數:select count(*) from v$session where statusACTIVE;查看當前…

oracle導出中文utf8亂碼,ORACLE導入導出后發生中文亂碼的原因及解決辦法

從數據庫服務器上使用exp導出時顯示如下:[oraclekf15-1]:/users/oracle>$ exp username/passwdkf15-1/i1000 tablestable_name filetable_name_unix.dmp satisticsnone buffer1000000Export: Release 10.2.0.4.0 - Production on 星期四 8月 26 16:37:08 2010Cop…

基于matlab的圖解粒度參數計算,基于MATLAB的圖解粒度參數計算

摘要粒度特征是沉積物的基本特征之一。計算沉積物粒度參數的方法主要有矩法和圖解法兩種,其中圖解法必須通過手工作圖求累積曲線,是一項相當繁雜的勞動,不利于計算大量樣品。文中提出的方法將圖解求沉積物樣品的累積曲線百分位數的過程轉化為…

oracle判斷數據出現交叉,Oracle!你必須要知道的Knowledge points(一)

一、入門oracle有四個用戶,分別為sys、system、sysman和scott,其中sys是oracle權限最高的用戶,類似于Linux系統的root,scott是示例用戶,上課就以這個用戶里的三張員工表empno、dept、salgrade作為示例來授課。啟動服務1. 快捷鍵ct…