fixed: added catch error websocket
This commit is contained in:
@@ -5,7 +5,6 @@ namespace Ragon.Common
|
|||||||
AUTHORIZE,
|
AUTHORIZE,
|
||||||
AUTHORIZED_SUCCESS,
|
AUTHORIZED_SUCCESS,
|
||||||
AUTHORIZED_FAILED,
|
AUTHORIZED_FAILED,
|
||||||
|
|
||||||
JOIN_OR_CREATE_ROOM,
|
JOIN_OR_CREATE_ROOM,
|
||||||
CREATE_ROOM,
|
CREATE_ROOM,
|
||||||
JOIN_ROOM,
|
JOIN_ROOM,
|
||||||
@@ -13,19 +12,14 @@ namespace Ragon.Common
|
|||||||
OWNERSHIP_CHANGED,
|
OWNERSHIP_CHANGED,
|
||||||
JOIN_SUCCESS,
|
JOIN_SUCCESS,
|
||||||
JOIN_FAILED,
|
JOIN_FAILED,
|
||||||
|
|
||||||
LOAD_SCENE,
|
LOAD_SCENE,
|
||||||
SCENE_LOADED,
|
SCENE_LOADED,
|
||||||
|
|
||||||
PLAYER_JOINED,
|
PLAYER_JOINED,
|
||||||
PLAYER_LEAVED,
|
PLAYER_LEAVED,
|
||||||
|
|
||||||
CREATE_ENTITY,
|
CREATE_ENTITY,
|
||||||
DESTROY_ENTITY,
|
DESTROY_ENTITY,
|
||||||
SNAPSHOT,
|
SNAPSHOT,
|
||||||
|
|
||||||
REPLICATE_ENTITY_STATE,
|
REPLICATE_ENTITY_STATE,
|
||||||
REPLICATE_ENTITY_EVENT,
|
REPLICATE_ENTITY_EVENT,
|
||||||
REPLICATE_EVENT,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Ragon.Common;
|
using Ragon.Common;
|
||||||
using ENet;
|
|
||||||
using NLog;
|
using NLog;
|
||||||
|
|
||||||
namespace Ragon.Core
|
namespace Ragon.Core
|
||||||
@@ -31,7 +30,7 @@ namespace Ragon.Core
|
|||||||
var dispatcher = new Dispatcher();
|
var dispatcher = new Dispatcher();
|
||||||
_dispatcher = dispatcher;
|
_dispatcher = dispatcher;
|
||||||
|
|
||||||
_socketServer = new WebSocketServer(this);
|
_socketServer = new ENetServer(this);
|
||||||
_deltaTime = 1000.0f / configuration.SendRate;
|
_deltaTime = 1000.0f / configuration.SendRate;
|
||||||
|
|
||||||
_roomManager = new RoomManager(factory, this);
|
_roomManager = new RoomManager(factory, this);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
@@ -53,9 +54,16 @@ public class WebSocketServer : ISocketServer
|
|||||||
var buffer = new Memory<byte>(bytes);
|
var buffer = new Memory<byte>(bytes);
|
||||||
while (webSocket.State == WebSocketState.Open)
|
while (webSocket.State == WebSocketState.Open)
|
||||||
{
|
{
|
||||||
var result = await webSocket.ReceiveAsync(buffer, CancellationToken.None);
|
try
|
||||||
var dataRaw = buffer.Slice(0, result.Count);
|
{
|
||||||
_eventHandler.OnData(peerId, dataRaw.ToArray());
|
var result = await webSocket.ReceiveAsync(buffer, CancellationToken.None);
|
||||||
|
var dataRaw = buffer.Slice(0, result.Count);
|
||||||
|
_eventHandler.OnData(peerId, dataRaw.ToArray());
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_eventHandler.OnDisconnected(peerId);
|
_eventHandler.OnDisconnected(peerId);
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class WebSocketTaskScheduler: TaskScheduler
|
|||||||
{
|
{
|
||||||
TryExecuteTask(task);
|
TryExecuteTask(task);
|
||||||
|
|
||||||
if (task.Status != TaskStatus.RanToCompletion)
|
if (task.Status == TaskStatus.Running)
|
||||||
_pendingTasks.Enqueue(task);
|
_pendingTasks.Enqueue(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user