主頁 >  其他 > Unity_Photon

Unity_Photon

2023-05-31 08:20:13 其他

Photon

Photon搭建

(2條訊息) 【Unity3D】Photon環境搭建_photon框架_little_fat_sheep的博客-CSDN博客

連接云服務器

主要代碼 :PhotonNetwork.ConnectUsingSettings();

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;

public class PhotonDemo : MonoBehaviour
{
    public GUISkin skin;//設定字體
    #region GUI Fields

    private List<string> photonState;
    #endregion
    /// <summary>
    /// 標記上一次的狀態
    /// </summary>
    private ClientState previousState;
    private void Awake()
    {
        photonState = new List<string>();
    }
    private void Start()
    {
        //鏈接Photon Cloud
        bool connectResult = PhotonNetwork.ConnectUsingSettings();
        //初始狀態
        previousState = PhotonNetwork.NetworkClientState;

        photonState.Add(previousState.ToString());
    }
    private void Update()
    {
        if (PhotonNetwork.NetworkClientState != previousState)
        {
            //如果當前狀態更新,則添加到字典
            photonState.Add(previousState.ToString());
            //更新previous
            previousState = PhotonNetwork.NetworkClientState;
        }
    }
    void OnGUI()
    {
        GUI.skin = skin;
        for (int i = 0; i < photonState.Count; i++)
        {
            GUILayout.Label(photonState[i]);
        }
        
    }
}

鏈接成功,

創建房間

狀態:ClientState.ConnectedToMasterServer

創建房間 : PhotonNetwork.CreateRoom(roomName);

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;

public class PhotonDemo : MonoBehaviour
{
    public GUISkin skin;
    #region GUI Fields

    private List<string> photonState;
    #endregion
    /// <summary>
    /// 標記上一次的狀態
    /// </summary>
    private ClientState previousState;
    private string roomName = "room007";
    private string roomMaxCount = "2";

    private void Awake()
    {
        photonState = new List<string>();
    }
    private void Start()
    {
        //初始狀態
        previousState = PhotonNetwork.NetworkClientState;
        photonState.Add(previousState.ToString());
    }
    private void Update()
    {
        if (PhotonNetwork.NetworkClientState != previousState)
        {
            //如果當前狀態更新,則添加到字典
            photonState.Add(previousState.ToString());
            //更新previous
            previousState = PhotonNetwork.NetworkClientState;
        }
        
    }
    void OnGUI()
    {
        GUI.skin = skin;
        //顯示程序中的全部資訊
        /*        for (int i = 0; i < photonState.Count; i++)
                {
                    GUILayout.Label(photonState[i]);
                }*/
        //顯示最新的
        switch (PhotonNetwork.NetworkClientState)
        {
            //未連接狀態
            case ClientState.PeerCreated:
                ConnectToPhotonCloud();
                break;
            case ClientState.ConnectedToMasterServer:
                RoomOperation();
                break;
        }
        GUILayout.Label(photonState[photonState.Count - 1]);
    }
    /// <summary>
    /// 鏈接Photon Cloud
    /// </summary>
    private void ConnectToPhotonCloud()
    {
        if (GUILayout.Button("連接"))
        {
            //鏈接Photon Cloud
            bool connectResult = PhotonNetwork.ConnectUsingSettings();
        }
    }
    /// <summary>
    /// 房間操作
    /// </summary>
    private void RoomOperation()
    {
        GUILayout.Label("情輸入房間名稱:");
        roomName = GUILayout.TextField(roomName);
        GUILayout.Label("情輸入房間最大人數:");
        roomMaxCount = GUILayout.TextField(roomMaxCount);
        if (GUILayout.Button("創建房間"))
        {
            //房間設定
            RoomOptions options = new RoomOptions();
            options.MaxPlayers = byte.Parse(roomMaxCount);
            //創建房間
            PhotonNetwork.CreateRoom(roomName);
        }
        if (GUILayout.Button("進入游戲大廳"))
        {
            //進入游戲大廳
            PhotonNetwork.JoinLobby();
        }
        if (GUILayout.Button("加入隨機房間"))
        {
            //加入隨機房間
            PhotonNetwork.JoinRandomRoom();
        }
    }
}

房間創建連接成功后,

join創建成功后,

回呼

回呼叫于檢測前序操作是否成功,

PhotonCallBackDemo :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;

public class PhotonCallBackDemo : MonoBehaviourPunCallbacks
{
    public override void OnConnected()
    {
        base.OnConnected();
        Debug.Log("Connected");
    }
    public override void OnConnectedToMaster()
    {
        base.OnConnectedToMaster();
        Debug.Log("Connected To MasterServer");
    }
    public override void OnDisconnected(DisconnectCause cause)
    {
        base.OnDisconnected(cause);
        Debug.Log("Disconnected:" + cause);
    }
    public override void OnCreatedRoom()
    {
        base.OnCreatedRoom();
        Debug.Log("Create Room Success!!");
    }
    public override void OnJoinRandomFailed(short returnCode, string message)
    {
        base.OnJoinRandomFailed(returnCode, message);
        Debug.Log("Failed Join Random Room!!" + returnCode + " | " + message);
    }
    public override void OnJoinedRoom()
    {
        base.OnJoinedRoom();
        Debug.Log("joined Room!!");
    }
    public override void OnJoinedLobby()
    {
        base.OnJoinedLobby();
        Debug.Log("Joined Lobby!!");
    }
}

完善switch

photonDemo:

    void OnGUI()
    {
        GUI.skin = skin;
        //顯示程序中的全部資訊
/*        for (int i = 0; i < photonState.Count; i++)
        {
            GUILayout.Label(photonState[i]);
        }*/
        //顯示最新的
        GUILayout.Label(photonState[photonState.Count - 1]);

        switch (PhotonNetwork.NetworkClientState)
        {
            case ClientState.Joined:
                JoinedRoomOperation();
                break;
            case ClientState.JoinedLobby:
                JoinedLobbyOperation();
                break;
        }
        if (GUILayout.Button("斷開連接"))
        {
            PhotonNetwork.Disconnect();
        }

    }
    private void JoinedLobbyOperation()
    {
        //PhotonNetwork.
    }
    private void JoinedRoomOperation()
    {

    }

加入房間

代碼:

回呼函式添加如下: PhotonCallBack:

    public List<RoomInfo> roomList;
    ///
        public override void OnRoomListUpdate(List<RoomInfo> roomList)
    {
        base.OnRoomListUpdate(roomList);
        this.roomList = roomList;
    }

photonDemo:

    private PhotonCallBackDemo cbDemo;
	///
    private void JoinedLobbyOperation()
    {
        GUILayout.Label("Room List:");
        GUILayout.Label("————————————————————");
        foreach (var item in cbDemo.roomList)
        {
            if (!item.IsOpen || !item.IsVisible)
            {
                continue;
            }
            GUILayout.Label("房間名稱:" + item.Name);
            GUILayout.Label("房間資訊:" + item.PlayerCount + "/" +item.MaxPlayers);
            if(GUILayout.Button("加入房間"))
            {
                PhotonNetwork.JoinRoom(item.Name);
            }
            GUILayout.Label("--------------------");
        }
        GUILayout.Label("————————————————————");
    }

測驗:

多開幾個測驗

房間01

房間02

房間03

離開大廳

        if (GUILayout.Button("離開大廳"))
        {
            PhotonNetwork.LeaveLobby();
        }

完整代碼:

photonDemo:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using System;

public class PhotonDemo : MonoBehaviour
{
    public GUISkin skin;
    #region GUI Fields

    private List<string> photonState;
    #endregion
    /// <summary>
    /// 標記上一次的狀態
    /// </summary>
    private ClientState previousState;
    private PhotonCallBackDemo cbDemo;
    private string roomName = "room007";
    private string roomMaxCount = "2";

    private void Awake()
    {
        photonState = new List<string>();
        cbDemo = GetComponent<PhotonCallBackDemo>();
    }
    private void Start()
    {

        //初始狀態
        previousState = PhotonNetwork.NetworkClientState;

        photonState.Add(previousState.ToString());
    }
    private void Update()
    {
        if (PhotonNetwork.NetworkClientState != previousState)
        {
            //如果當前狀態更新,則添加到字典
            photonState.Add(previousState.ToString());
            //更新previous
            previousState = PhotonNetwork.NetworkClientState;
        }
        
    }
    void OnGUI()
    {
        GUI.skin = skin;
        //顯示程序中的全部資訊
/*        for (int i = 0; i < photonState.Count; i++)
        {
            GUILayout.Label(photonState[i]);
        }*/
        //顯示最新的
        GUILayout.Label(photonState[photonState.Count - 1]);

        switch (PhotonNetwork.NetworkClientState)
        {
            //未連接狀態
            case ClientState.PeerCreated:
                ConnectToPhotonCloud();
                break;
            case ClientState.Disconnected                                              :
                ConnectToPhotonCloud();
                break;
            case ClientState.ConnectedToMasterServer:
                RoomOperation();
                break;
            case ClientState.Joined:
                JoinedRoomOperation();
                break;
            case ClientState.JoinedLobby:
                JoinedLobbyOperation();
                break;
        }
        if (GUILayout.Button("斷開連接"))
        {
            PhotonNetwork.Disconnect();
        }

    }

    private void JoinedLobbyOperation()
    {
        GUILayout.Label("Room List:");
        GUILayout.Label("————————————————————");
        foreach (var item in cbDemo.roomList)
        {
            if (!item.IsOpen || !item.IsVisible)
            {
                continue;
            }
            if (item.MaxPlayers == 0)
            {
                continue;
            }
            GUILayout.Label("房間名稱:" + item.Name);
            GUILayout.Label("房間資訊:" + item.PlayerCount + "/" +item.MaxPlayers);
            if(GUILayout.Button("加入房間"))
            {
                PhotonNetwork.JoinRoom(item.Name);
            }
        }
        GUILayout.Label("————————————————————");
        if (GUILayout.Button("離開大廳"))
        {
            PhotonNetwork.LeaveLobby();
        }
    }
    private void JoinedRoomOperation()
    {

    }
    /// <summary>
    /// 鏈接Photon Cloud
    /// </summary>
    private void ConnectToPhotonCloud()
    {
        if (GUILayout.Button("連接"))
        {
            //鏈接Photon Cloud
            bool connectResult = PhotonNetwork.ConnectUsingSettings();
        }
    }

    /// <summary>
    /// 房間操作
    /// </summary>
    private void RoomOperation()
    {
        GUILayout.Label("情輸入房間名稱:");
        roomName = GUILayout.TextField(roomName);
        GUILayout.Label("情輸入房間最大人數:");
        roomMaxCount = GUILayout.TextField(roomMaxCount);
        if (GUILayout.Button("創建房間"))
        {
            //房間設定
            RoomOptions options = new RoomOptions();
            options.MaxPlayers = byte.Parse(roomMaxCount);
            //創建房間
            PhotonNetwork.CreateRoom(roomName,options);
        }
        if (GUILayout.Button("進入游戲大廳"))
        {
            //進入游戲大廳
            PhotonNetwork.JoinLobby();
        }
        if (GUILayout.Button("加入隨機房間"))
        {
            //加入隨機房間
            PhotonNetwork.JoinRandomRoom();
        }
    }
}

Photon CallBackDemo:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;

public class PhotonCallBackDemo : MonoBehaviourPunCallbacks
{
    public List<RoomInfo> roomList;
    public override void OnConnected()
    {
        base.OnConnected();
        Debug.Log("Connected");
    }
    public override void OnConnectedToMaster()
    {
        base.OnConnectedToMaster();
        Debug.Log("Connected To MasterServer");
    }
    public override void OnDisconnected(DisconnectCause cause)
    {
        base.OnDisconnected(cause);
        Debug.Log("Disconnected:" + cause);
    }
    public override void OnCreatedRoom()
    {
        base.OnCreatedRoom();
        Debug.Log("Create Room Success!!");
    }
    public override void OnJoinRandomFailed(short returnCode, string message)
    {
        base.OnJoinRandomFailed(returnCode, message);
        Debug.Log("Failed Join Random Room!!" + returnCode + " | " + message);
    }
    public override void OnJoinedRoom()
    {
        base.OnJoinedRoom();
        Debug.Log("joined Room!!");
    }
    public override void OnJoinedLobby()
    {
        base.OnJoinedLobby();
        Debug.Log("Joined Lobby!!");
    }
    public override void OnRoomListUpdate(List<RoomInfo> roomList)
    {
        base.OnRoomListUpdate(roomList);
        this.roomList = roomList;
    }
}

房間設定

加入房間后,顯示房間里的玩家

item.Value.IsLocal 是否為自己

item.Value.NickName 名稱

private void JoinedRoomOperation()
    {
        GUILayout.Label("Player List:");
        GUILayout.Label("————————————————————");
        //找到當前房間,在遍歷所有玩家
        foreach (var item in PhotonNetwork.CurrentRoom.Players)
        {
            //逐個顯示玩家 
            GUILayout.Label(item.Key +" : "+ item.Value.NickName + (item.Value.IsLocal? "√":""));
        }
/*        //之家遍歷玩家串列,已經排好序,優先使用
        foreach (var item in PhotonNetwork.PlayerList)
        {
            //逐個顯示玩家 
            GUILayout.Label(item.ActorNumber + " : "+ item.NickName + (item.IsLocal ? "√" : ""));
        }*/
        GUILayout.Label("————————————————————");
        if (GUILayout.Button("離開房間"))
        {
            PhotonNetwork.LeaveRoom();
        }
    }

順序房間

用字典的話,上面的順序隨機,不會排好序

#玩家準備#

重點,photon未封裝,

        //之家遍歷玩家串列,已經排好序,優先使用
        foreach (var item in PhotonNetwork.PlayerList)
        {
            //逐個顯示玩家 
            GUILayout.Label(item.ActorNumber + " : " + item.NickName + (item.IsLocal ? "√" : ""));
            object isReady = false;
            item.CustomProperties.TryGetValue("Ready",out isReady);//獲取玩家屬性
            if (isReady == null || !(bool)isReady)
            {
                if (item.IsLocal && GUILayout.Button("準備"))
                {
                    ExitGames.Client.Photon.Hashtable readyHash = new ExitGames.Client.Photon.Hashtable();
                    readyHash.Add("Ready", true);
                    item.SetCustomProperties(readyHash);
                }
                else
                {
                    GUILayout.Label("【未準備】");
                }
            }
            else
            {
                GUILayout.Label("【已準備】");
                if (item.IsLocal && GUILayout.Button("取消準備"))
                {
                    ExitGames.Client.Photon.Hashtable readyHash = new ExitGames.Client.Photon.Hashtable();
                    readyHash.Add("Ready", false);
                    item.SetCustomProperties(readyHash);
                }
            }
            //PhotonNetwork.CurrentRoom.CustomProperties
        }

房間準備

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/553850.html

標籤:其他

上一篇:讀資料壓縮入門筆記03_VLC

下一篇:返回列表

標籤雲
其他(160014) Python(38189) JavaScript(25464) Java(18161) C(15234) 區塊鏈(8268) C#(7972) AI(7469) 爪哇(7425) MySQL(7217) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5344) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4579) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2434) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1977) 功能(1967) Web開發(1951) HtmlCss(1950) C++(1927) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1862) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • Unity_Photon

    # Photon ## Photon搭建 [(2條訊息) 【Unity3D】Photon環境搭建_photon框架_little_fat_sheep的博客-CSDN博客](https://blog.csdn.net/m0_37602827/article/details/127054963?ops_ ......

    uj5u.com 2023-05-31 08:20:13 more
  • 讀資料壓縮入門筆記03_VLC

    一種表示整數的方法,它用一個或多個位元組來表示一個整數,數值越小用的位元組數越少,數值越大用的位元組數越多 ......

    uj5u.com 2023-05-31 08:19:54 more
  • P9376 題解

    首先考慮怎么暴力。 考慮把每個數進行 $B$ 進制分解,然后我們驚奇的發現這兩個操作就是把最低位去掉和往最低位后面插入一個數。 然后我們順藤摸瓜,把每個數的分解扔到 Trie 樹上,我們發現我們要找到一個節點,使得所有單詞節點到其的距離之和最短,答案就是這個最短距離。 這里直接考慮一個 Trie 樹 ......

    uj5u.com 2023-05-31 08:19:48 more
  • AtCoder Beginner Contest 303

    ## [A - Similar String (abc303 a)](https://atcoder.jp/contests/abc303/tasks/abc303_a) ### 題目大意 給定兩個字串,問這兩個字串是否相似。 兩個字串相似,需要每個字母,要么完全相同,要么一個是`1`一個是` ......

    uj5u.com 2023-05-31 08:19:43 more
  • 牛客小白月賽73

    # A.最小的數字 ### 題目: ![](https://img2023.cnblogs.com/blog/2960080/202305/2960080-20230526220648535-777334559.png) ### 分析: 簡單列舉一下,找到第一個大于等于n的且是3的倍數的數 ### ......

    uj5u.com 2023-05-31 08:19:25 more
  • 基于ZigBee3.0技術的數傳電臺功能使用詳解

    一、ZigBee3.0數傳電臺功能簡介 1、4G DTU數傳電臺LINK燈詳解 基于zigbee3.0通信技術的4G DTU數傳電臺LINK燈用于指示模塊當前網路狀態,設備入網成功后LINK燈常亮,當設備沒有網路時LINK燈熄滅;在協調器模式下,該引腳指示zigbee模塊是否正常建立網路,協調器和路 ......

    uj5u.com 2023-05-31 08:18:54 more
  • 提高生產力的最佳免費開源終端:WindTerm

    WindTerm是一個免費的開源終端工具,旨在提高開發人員和系統管理員的生產力。它為使用命令列的用戶帶來了更好的終端體驗,使其能夠更快速、高效地完成操作。

    相比傳統終端,WindTerm具有多個優勢,如支持多標簽頁、自定義主題、自動補全等功能,這些功能都可以顯著提高開發人員的作業效率。此外,Win... ......

    uj5u.com 2023-05-31 08:18:39 more
  • Three.js教程:物件克隆、復制

    推薦:將NSDT場景編輯器加入你的3D工具鏈 其他系列工具:NSDT簡石數字孿生 物件克隆.clone()和復制.copy() Threejs大多數物件都有克隆.clone()和復制.copy()兩個方法,點模型Points、線模型Line、網格網格模型Mesh一樣具有這兩個方法。 復制方法.cop ......

    uj5u.com 2023-05-31 08:18:06 more
  • Java 集合類詳解(一)

    ## 為什么要使用集合 存盤多個資料可以使用陣列,但由于陣列在記憶體中是連續存盤的,所以會有一些限制。比如陣列在創建時就要指定長度,即可以容納的元素個數,且指定后無法更改;陣列在創建時需要指定元素的型別,并且所有元素都必須是該型別或其子類;添加或洗掉陣列中的元素需要創建一個新陣列再進行元素復制,比較麻 ......

    uj5u.com 2023-05-31 08:17:43 more
  • 詳解RocketMQ 順序消費機制

    摘要:順序訊息是指對于一個指定的 Topic ,訊息嚴格按照先進先出(FIFO)的原則進行訊息發布和消費,即先發布的訊息先消費,后發布的訊息后消費。 本文分享自華為云社區《RocketMQ 順序消費機制》,作者: 勇哥java實戰分享 。 順序訊息是指對于一個指定的 Topic ,訊息嚴格按照先進先 ......

    uj5u.com 2023-05-31 08:17:16 more