Skip to content

Commit d862504

Browse files
authored
Update Steam Game Server Callbacks (#221)
* Steam Networking Sockets * Removed bad copy * Update README.md * Update SteamNetworkingTransport.cs - Added check for connected users - Added OnDestroy to try and clean up in the event of a force shutdown * Update README.md * Updated byte array init * Delete Transports/com.community.netcode.transport.steamnetworking directory * Update README.md * Update README.md * Update SteamNetworkingSocketsTransport.cs * Update SteamNetworkingSocketsTransport.cs Fixed batch size missmatch issue seen in 1.3 +
1 parent 040b71a commit d862504

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

Transports/com.community.netcode.transport.steamnetworkingsockets/Runtime/SteamNetworkingSocketsTransport.cs

+15-6
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,17 @@ public override void DisconnectLocalClient()
6060
{
6161
if (NetworkManager.Singleton.LogLevel <= LogLevel.Developer) NetworkLog.LogInfoServer(nameof(SteamNetworkingSocketsTransport) + " - DisconnectLocalClient");
6262

63-
if (serverUser != null) {
63+
if (serverUser != null)
64+
{
6465
if (connectionMapping.ContainsKey(serverUser.id.m_SteamID))
6566
connectionMapping.Remove(serverUser.id.m_SteamID);
6667
#if UNITY_SERVER
6768
SteamGameServerNetworkingSockets.CloseConnection(serverUser.connection, 0, "Disconnected", false);
6869
#else
6970
SteamNetworkingSockets.CloseConnection(serverUser.connection, 0, "Disconnected", false);
7071
#endif
71-
serverUser = null;
7272
}
73+
serverUser = null;
7374
}
7475

7576
public override void DisconnectRemoteClient(ulong clientId)
@@ -184,7 +185,7 @@ public override NetworkEvent PollEvent(out ulong clientId, out ArraySegment<byte
184185
else if (param.m_info.m_eState == ESteamNetworkingConnectionState.k_ESteamNetworkingConnectionState_Connected)
185186
{
186187
if (NetworkManager.Singleton.LogLevel <= LogLevel.Developer)
187-
NetworkLog.LogInfoServer(nameof(SteamNetworkingSocketsTransport) + " - connection request to " + param.m_info.m_identityRemote.GetSteamID64() + " was accepted!");
188+
Debug.Log(nameof(SteamNetworkingSocketsTransport) + " - connection request to " + param.m_info.m_identityRemote.GetSteamID64() + " was accepted!");
188189

189190
clientId = param.m_info.m_identityRemote.GetSteamID64();
190191
payload = new ArraySegment<byte>();
@@ -210,7 +211,7 @@ public override NetworkEvent PollEvent(out ulong clientId, out ArraySegment<byte
210211
{
211212
//The connection is no more
212213
if (NetworkManager.Singleton.LogLevel <= LogLevel.Developer)
213-
NetworkLog.LogInfoServer(nameof(SteamNetworkingSocketsTransport) + $" - connection closed for {param.m_info.m_identityRemote.GetSteamID64()} state responce: {param.m_info.m_eState}");
214+
Debug.Log(nameof(SteamNetworkingSocketsTransport) + $" - connection closed for {param.m_info.m_identityRemote.GetSteamID64()} state responce: {param.m_info.m_eState}");
214215

215216
clientId = param.m_info.m_identityRemote.GetSteamID64();
216217
payload = new ArraySegment<byte>();
@@ -246,8 +247,8 @@ public override NetworkEvent PollEvent(out ulong clientId, out ArraySegment<byte
246247
clientId = connectionData.id.m_SteamID;
247248

248249
SteamNetworkingMessage_t data = Marshal.PtrToStructure<SteamNetworkingMessage_t>(ptrs[0]);
249-
var buffer = new byte[data.m_cbSize];
250-
Marshal.Copy(data.m_pData, buffer, 0, data.m_cbSize);
250+
var buffer = new byte[data.m_cbSize - 1];
251+
Marshal.Copy(data.m_pData, buffer, 0, data.m_cbSize - 1);
251252
payload = new ArraySegment<byte>(buffer);
252253
SteamNetworkingMessage_t.Release(ptrs[0]);
253254

@@ -380,7 +381,11 @@ public override void Shutdown()
380381
public override bool StartClient()
381382
{
382383
if (c_onConnectionChange == null)
384+
#if UNITY_SERVER
385+
c_onConnectionChange = Callback<SteamNetConnectionStatusChangedCallback_t>.CreateGameServer(OnConnectionStatusChanged);
386+
#else
383387
c_onConnectionChange = Callback<SteamNetConnectionStatusChangedCallback_t>.Create(OnConnectionStatusChanged);
388+
#endif
384389

385390
serverUser = new SteamConnectionData(new CSteamID(ConnectToSteamID));
386391

@@ -414,7 +419,11 @@ public override bool StartServer()
414419
isServer = true;
415420

416421
if(c_onConnectionChange == null)
422+
#if UNITY_SERVER
423+
c_onConnectionChange = Callback<SteamNetConnectionStatusChangedCallback_t>.CreateGameServer(OnConnectionStatusChanged);
424+
#else
417425
c_onConnectionChange = Callback<SteamNetConnectionStatusChangedCallback_t>.Create(OnConnectionStatusChanged);
426+
#endif
418427

419428
if (options == null)
420429
options = new SteamNetworkingConfigValue_t[0];

0 commit comments

Comments
 (0)