public ServerConnection(Uri baseAdress)
        {
            HubConnection = new HubConnectionBuilder()
                            .WithUrl((new Uri(baseAdress, "/gatheringhub")).AbsoluteUri)
                            .Build();

            HubConnection.On <Message>("ReceiveMessage", (message) => OnServerMessage?.Invoke(message));
        }
예제 #2
0
        private void ReadPacketQueue()
        {
            for (int i = 0; i < messageQueue.Count; i++)
            {
                var recv = messageQueue.Dequeue();

                ByteUtil.DumpNum(recv.Buffer);
                OnServerMessage?.Invoke(recv.Buffer);
            }
        }
예제 #3
0
 static int SetServerMessageCallback(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         CNetManager     obj  = (CNetManager)ToLua.CheckObject <CNetManager>(L, 1);
         OnServerMessage arg0 = (OnServerMessage)ToLua.CheckDelegate <OnServerMessage>(L, 2);
         obj.SetServerMessageCallback(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
예제 #4
0
        private void OnAsyncData(IAsyncResult ar)
        {
            try {
                Client client = (Client)ar.AsyncState;
                client.m_length = (ushort)client.m_socket.EndReceive(ar);
                client.m_data   = new byte[client.m_length];

                Buffer.BlockCopy(client.m_raw, 0, client.m_data, 0, client.m_length);
                client.m_raw = null;

                OnServerMessage?.Invoke(this, client);
            } catch (Exception e) {
                HandleException(e);
            }
        }
예제 #5
0
 public void SetServerMessageCallback(OnServerMessage messageCallback)
 {
     mServerMessage = messageCallback;
 }