介入网络收发
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf5bc579defd25640b8f277220459410
|
||||
guid: ac16629ba2ddb4832bfc3548b7a92da0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,2 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dc84d27ae0bdf764fb50b6d543cbcf7e
|
||||
guid: 79e8bd7cb8ff94462a0108fac5149a46
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
namespace NBC
|
||||
{
|
||||
// Route协议定义(需要定义1000以上、因为1000以内的框架预留)
|
||||
public static class RouteType
|
||||
{
|
||||
public const int GateRoute = 1001; // Gate
|
||||
public const int ChatRoute = 1002; // Chat
|
||||
}
|
||||
}
|
||||
// Route协议定义(需要定义1000以上、因为1000以内的框架预留)
|
||||
public static class RouteType
|
||||
{
|
||||
public const int GateRoute = 1001; // Gate
|
||||
public const int ChatRoute = 1002; // Chat
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76b668cc0db30b34ab2a64d695b14ac4
|
||||
guid: 93ff0f8f28d294cdab3c6346d873065d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NBC
|
||||
@@ -73,10 +74,34 @@ namespace NBC
|
||||
private async FTask StartAsync()
|
||||
{
|
||||
// 初始化框架
|
||||
await NBC.Platform.Unity.Entry.Initialize(GetType().Assembly);
|
||||
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
|
||||
List<System.Reflection.Assembly> loadAssemblies = new List<System.Reflection.Assembly>();
|
||||
foreach (var assembly in assemblies)
|
||||
{
|
||||
// 跳过系统程序集以提高性能(可选)
|
||||
if (IsSystemAssembly(assembly))
|
||||
continue;
|
||||
loadAssemblies.Add(assembly);
|
||||
}
|
||||
|
||||
await NBC.Platform.Unity.Entry.Initialize(loadAssemblies.ToArray());
|
||||
_scene = await Scene.Create(SceneRuntimeMode.MainThread);
|
||||
UI = _scene.AddComponent<UIComponent>();
|
||||
OnInitialized?.Invoke();
|
||||
}
|
||||
|
||||
// 判断是否是系统程序集(可选优化)
|
||||
private static bool IsSystemAssembly(System.Reflection.Assembly assembly)
|
||||
{
|
||||
string assemblyName = assembly.FullName;
|
||||
return assemblyName.StartsWith("System") ||
|
||||
assemblyName.StartsWith("Microsoft.") ||
|
||||
assemblyName.StartsWith("UnityEngine") ||
|
||||
assemblyName.StartsWith("UnityEditor") ||
|
||||
assemblyName.StartsWith("mscorlib") ||
|
||||
assemblyName.StartsWith("netstandard") ||
|
||||
assemblyName.StartsWith("nunit.") ||
|
||||
assemblyName.StartsWith("Unity.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,8 +72,9 @@ namespace NBC.Network.Interface
|
||||
|
||||
private void LoadInner(long assemblyIdentity)
|
||||
{
|
||||
var nmsl = AssemblySystem.ForEach(assemblyIdentity, typeof(IMessage));
|
||||
// 遍历所有实现了IMessage接口的类型,获取OpCode并添加到_networkProtocols字典中
|
||||
foreach (var type in AssemblySystem.ForEach(assemblyIdentity, typeof(IMessage)))
|
||||
foreach (var type in nmsl)
|
||||
{
|
||||
var obj = (IMessage) Activator.CreateInstance(type);
|
||||
var opCode = obj.OpCode();
|
||||
|
||||
@@ -231,6 +231,7 @@ namespace NBC.PacketParser
|
||||
var memoryStreamLength = 0;
|
||||
var messageType = message.GetType();
|
||||
var memoryStream = Network.MemoryStreamBufferPool.RentMemoryStream(MemoryStreamBufferSource.Pack);
|
||||
var nmsl = message.OpCode();
|
||||
OpCodeIdStruct opCodeIdStruct = message.OpCode();
|
||||
memoryStream.Seek(Packet.OuterPacketHeadLength, SeekOrigin.Begin);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ using Assets.Scripts.Hotfix;
|
||||
using FairyGUI;
|
||||
using NBC;
|
||||
using NBC.Network;
|
||||
using NBC.Platform.Unity;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
using UnityEngine.Video;
|
||||
@@ -150,18 +151,31 @@ namespace NBF
|
||||
|
||||
private async FTask OnLoginButtonClick()
|
||||
{
|
||||
// NBC.Platform.Unity.Entry.Initialize(GetType().Assembly);
|
||||
|
||||
// 根据用户名来选择目标的鉴权服务器
|
||||
// 根据鉴权服务器地址来创建一个新的网络会话
|
||||
_session = SessionHelper.CreateSession(App.Main, "127.0.0.1:20001", OnConnectComplete,
|
||||
OnConnectFail,
|
||||
OnConnectDisconnect);
|
||||
|
||||
var acc = "test001";
|
||||
|
||||
// // 发送一个注册的请求消息到目标服务器
|
||||
// var responseReg = (A2C_RegisterResponse)await _session.Call(new C2A_RegisterRequest()
|
||||
// {
|
||||
// Username = acc,
|
||||
// Password = acc
|
||||
// });
|
||||
|
||||
// 发送登录的请求给服务器
|
||||
var response = (A2C_LoginResponse)await _session.Call(new C2A_LoginRequest()
|
||||
{
|
||||
Username = "test001",
|
||||
Password = "test001",
|
||||
Username = acc,
|
||||
Password = acc,
|
||||
LoginType = 1
|
||||
});
|
||||
|
||||
if (response.ErrorCode != 0)
|
||||
{
|
||||
Log.Error($"登录发生错误{response.ErrorCode}");
|
||||
|
||||
Reference in New Issue
Block a user