广播聊天测试

This commit is contained in:
bob
2025-08-07 17:51:38 +08:00
parent abb211e0da
commit 3c39f4a3c9
6 changed files with 73 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 513b2467b34d4c159035e59b0f79164c
timeCreated: 1754532816

View File

@@ -0,0 +1,20 @@
using NBC;
using NBC.Network;
using NBC.Network.Interface;
namespace NBF
{
public class Chat2C_MessageHandler : Message<Chat2C_Message>
{
protected override async FTask Run(Session session, Chat2C_Message message)
{
Log.Debug($"收到一条消息推送message={message.Message}");
var chatTestPanel = App.UI.GetUI<ChatTestPanel>();
if (chatTestPanel != null)
{
chatTestPanel.Message(message.Message);
}
await FTask.CompletedTask;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4937340a042f4608918a01ecf456b6fe
timeCreated: 1754532888

View File

@@ -11,5 +11,10 @@ namespace NBF
private void OnInited()
{
}
public void InitData(string message)
{
TextMessage.text = message;
}
}
}

View File

@@ -1,5 +1,6 @@
// 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖
using System.Collections.Generic;
using Assets.Scripts.Entity;
using Assets.Scripts.Hotfix;
using FairyGUI;
@@ -12,6 +13,8 @@ namespace NBF
{
public partial class ChatTestPanel : UIPanel
{
private List<string> _messages = new List<string>();
protected override void OnInit()
{
this.AutoAddClick(OnClick);
@@ -22,6 +25,18 @@ namespace NBF
SetLoginState(false);
}
private void RefreshList()
{
ChatList.RemoveChildrenToPool();
foreach (var item in _messages)
{
if(ChatList.AddItemFromPool() is ChatItem chatItem)
{
chatItem.InitData(item);
}
}
}
private void OnClick(GComponent btn)
{
if (btn == BtnLogin)
@@ -34,6 +49,10 @@ namespace NBF
OnLoginButtonClick(InputAccount.text).Coroutine();
}
else if (btn == BtnSendWorld)
{
OnSendMessage(InputMessage.title).Coroutine();
}
}
private void SetLoginState(bool isLogin = false, string account = "")
@@ -133,5 +152,27 @@ namespace NBF
}
#endregion
#region
private async FTask OnSendMessage(string message)
{
var messageResponse = (Caht2C_SendMessageResponse)await _session.Call(new C2Chat_SendMessageRequest()
{
Message = message
});
if (messageResponse.ErrorCode != 0)
{
Notices.Info($"发送消息失败code={messageResponse.ErrorCode}");
}
}
public void Message(string message)
{
_messages.Add(message);
RefreshList();
}
#endregion
}
}

View File

@@ -23,5 +23,6 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector2Int_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F021f30a9a92b48ce98ae6b39956dd76a1df600_003F23_003F52710087_003FVector2Int_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector4_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F021f30a9a92b48ce98ae6b39956dd76a1df600_003F15_003F15f07947_003FVector4_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVoid_002Ecs_002Fl_003AC_0021_003FUsers_003Fbob_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F314938d17f3848e8ac683e11b27f62ee46ae00_003F6f_003F6fe2b5e6_003FVoid_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">VISIBLE_FILES</s:String>
</wpf:ResourceDictionary>