There is no argument given that corresponds to the required formal parameter 'configuration' of 'App
Options
youb1649
✭✭
using Photon.SocketServer;
namespace TestServer3
{
public class PhotonAckServer : ApplicationBase
{
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new PhotonAckPeer(initRequest);
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
I am studying with Photon's old reference book.
However, I am trying to compose a program with the latest library.
1>D:\photon-server-sdk_v5-0-12-24499-rc1\src-server\TestServer3\PhotonAckServer.cs(5,18,5,33): error CS7036: There is no argument given that corresponds to the required formal parameter 'configuration' of 'ApplicationBase.ApplicationBase(IConfiguration)'
I'm getting this error, can you tell me how to fix it?
namespace TestServer3
{
public class PhotonAckServer : ApplicationBase
{
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new PhotonAckPeer(initRequest);
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
I am studying with Photon's old reference book.
However, I am trying to compose a program with the latest library.
1>D:\photon-server-sdk_v5-0-12-24499-rc1\src-server\TestServer3\PhotonAckServer.cs(5,18,5,33): error CS7036: There is no argument given that corresponds to the required formal parameter 'configuration' of 'ApplicationBase.ApplicationBase(IConfiguration)'
I'm getting this error, can you tell me how to fix it?
0
Comments
-
hi, @youb1649
the simplest way is to create default constructor that calls base constructor and passes there result of 'new ConfigurationBuilder().Build()' call
take a look at LoadBalancing apps to see how to load your own configuration. Here for instance:
(sdk_root)\src-server\Loadbalancing\LoadBalancing\GameServer\GameApplication.cs
best,
ilya0 -
using Microsoft.Extensions.Configuration;
using Photon.SocketServer;
namespace TestServer3
{
public class PhotonAckServer : ApplicationBase
{
public PhotonAckServer(IConfiguration configuration) : base(configuration)
{
}
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new PhotonAckPeer(initRequest);
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
28556: 17:59:00.638 - ---
28556: 17:59:00.638 - Service: "Photon Socket Server" starting
28556: 17:59:00.638 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
28556: 17:59:00.639 - Config|INFO| Adding config path macro: "[CONFIG]" - "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64"
28556: 17:59:00.639 - Config|INFO| Adding config path macro: "[DEPLOY]" - "[CONFIG]\.."
28556: 17:59:00.639 - Config|INFO| Adding config path macro: "[EXE]" - "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64"
28556: 17:59:00.641 - Will produce at most: 10 crash dumps
28556: 17:59:00.641 - Construction of service object complete
58276: 17:59:00.644 - Server Starting...
58276: 17:59:00.644 - Tick count: 1466612125 (wraps in: 32.7356 days)
58276: 17:59:00.644 - Tick count 64: 1466612125
58276: 17:59:00.644 - ENet high resolution Tick count: 1466622805 (wraps in: 32.7355 days)
58276: 17:59:00.644 - Photon Version: 5.0.12.7770
58276: 17:59:00.644 - Photon Build: RELEASE - x64 - VS2019 (16.8) - 192829336
58276: 17:59:00.644 - PID: 57368
58276: 17:59:00.644 - EXE: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe
58276: 17:59:00.644 - OpenSSL 1.1.1i 8 Dec 2020
58276: 17:59:00.650 - Current directory is: C:\WINDOWS\system32
58276: 17:59:00.650 - Changing current directory to: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64
58276: 17:59:00.650 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
58276: 17:59:00.651 - Will NOT log unimportant exceptions
58276: 17:59:00.652 - Performance Counter Configuration for: "Photon Socket Server"
58276: 17:59:00.652 - First Counter Index: 14002
58276: 17:59:00.653 - Last Counter Index: 14930
58276: 17:59:00.653 - First Help Index: 14003
58276: 17:59:00.653 - Last Help Index: 14931
58276: 17:59:00.653 - Object List: 14002 14102 14208 14308 14352 14486 14516 14546 14638 14672 14736 14842
58276: 17:59:00.653 - Perf Ini File: Photon_Socket_Server.ini
58276: 17:59:00.653 - Schema Checksum: 5979F91EE7E960B64504E91EBC830577
58276: 17:59:00.653 - DLL name: PhotonSocketServerCounters.dll
58276: 17:59:00.654 - Counters are installed? - "Photon Socket Server"
58276: 17:59:00.661 - Not using perfmon performance counters. The installed counters do not match the counter dll
58276: 17:59:00.661 - Run the service with /InstallCounters to reinstall the latest counters.
58276: 17:59:00.661 - Using in-proc performance counters, access via Interop API only
58276: 17:59:00.672 - Shutdown timeout enabled: 60000ms
58276: 17:59:00.672 - Starting I/O thread pool with 4 threads
19844: 17:59:00.672 - InitialiseWorkerThread - I/O thread - COM enabled
48852: 17:59:00.673 - InitialiseWorkerThread - I/O thread - COM enabled
10512: 17:59:00.673 - InitialiseWorkerThread - I/O thread - COM enabled
22576: 17:59:00.673 - InitialiseWorkerThread - I/O thread - COM enabled
58276: 17:59:00.673 - ENet: buffer size: 4096
58276: 17:59:00.673 - ENet: buffer pool: 5000
58276: 17:59:00.673 - Max message size: 512000
58276: 17:59:00.673 - CMultiPoolBufferAllocator::GetAllocator() - "CENetThreadPool"
44460: 17:59:00.673 - Initialise - ENet thread pool thread
28136: 17:59:00.673 - Initialise - ENet thread pool thread
41544: 17:59:00.673 - Initialise - ENet thread pool thread
54244: 17:59:00.673 - Initialise - ENet thread pool thread
38544: 17:59:00.673 - Initialise - ENet thread pool thread
51696: 17:59:00.673 - Initialise - ENet thread pool thread
52848: 17:59:00.673 - Initialise - ENet thread pool thread
58276: 17:59:00.673 - Starting ENet thread pool with the following settings
58276: 17:59:00.673 - InitialThreads: 8 threads
58276: 17:59:00.673 - MinThreads: 8 threads
58276: 17:59:00.673 - Thread pool is fixed size
58276: 17:59:00.673 - OnlyDispatchTimers: False
53132: 17:59:00.673 - Initialise - ENet thread pool thread
58276: 17:59:01.856 - Resolution ~ 153274 - 15ms
58276: 17:59:01.856 - ENet timer granularity: 15ms
58276: 17:59:01.856 - ENet high performance timers: False
58276: 17:59:01.858 - Config|INFO| TCP S2S: no explicit configuration, using defaults. Add a <S2S> node to configure.
58276: 17:59:01.858 - Config|INFO| TCP S2S: - flow control: Max queued bytes: 50000
58276: 17:59:01.858 - Config|INFO| TCP S2S: - flow control: Notification step size: 25
58276: 17:59:01.858 - Config|INFO| TCP S2S: - no read timeout
58276: 17:59:01.858 - Config|INFO| TCP S2S: - rate limit: 32000 bytes per 250ms (125KB/sec)
58276: 17:59:01.858 - Config|INFO| TCP S2S: Nagle: disabled
58276: 17:59:01.858 - Config|INFO| TCP S2S: PingFrequency: 2500
58276: 17:59:01.858 - Config|INFO| TCP S2S: MaxInboundMessageSize: 512000
58276: 17:59:01.858 - Config|INFO| TCP S2S: MaxOutboundMessageSize: 512000
58276: 17:59:01.858 - Config|INFO| TCP S2S: ConnectTimeout: 30000ms
58276: 17:59:01.858 - Config|INFO| TCP S2S: No App Data inactivity timeout
58276: 17:59:01.858 - Config|INFO| TCP S2S: No write completion timeout
58276: 17:59:01.868 - GetRuntime - About to load CLR - versions available:
58276: 17:59:01.868 - v2.0.50727
58276: 17:59:01.868 - v4.0.30319
58276: 17:59:01.868 - Configuration requests: "v4.0.30319"
58276: 17:59:01.868 - About to load version: "v4.0.30319"
58276: 17:59:01.878 - About to load runtime: PhotonHostRuntime.PhotonDomainManager from PhotonHostRuntime, Culture=neutral, PublicKeyToken=02C301B61B060C4D
58276: 17:59:01.878 - CLRBaseDirectory set to "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy"
58276: 17:59:01.879 - Start: About to load CLR - versions available:
58276: 17:59:01.879 - v2.0.50727
58276: 17:59:01.879 - v4.0.30319
58276: 17:59:01.879 - No preference in configuration file, will load latest.
58276: 17:59:01.879 - About to load version: "v4.0.30319"
58276: 17:59:01.879 - Using server GC
58276: 17:59:01.879 - GC: Server garbage collector enabled
58276: 17:59:01.879 - GC: Concurrent garbage collector enabled
58276: 17:59:01.879 - GC: Trim on commit disabled
58276: 17:59:01.880 - Using CLR config file: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe.config
58276: 17:59:01.880 - Loaded version: "v4.0.30319"
58276: 17:59:02.084 - Photon host runtime loaded
58276: 17:59:03.664 - License is valid.
58276: 17:59:03.664 - Licensed for 100 concurrent connections.
58276: 17:59:03.664 - ENet: Ping interval: 1000 ms
58276: 17:59:03.664 - ENet: Data sending delay: 5 ms
58276: 17:59:03.664 - ENet: ACK sending delay: 5 ms
58276: 17:59:03.664 - ENet: Max Reliable Data In Transit (awaiting ACKs) per peer : 51200 bytes
58276: 17:59:03.664 - ENet: Per peer bandwidth limit
58276: 17:59:03.664 - ENet: Transmit Rate Limit: 256 KB/Sec
58276: 17:59:03.664 - ENet: Limit period: 200ms
58276: 17:59:03.664 - ENet: Limit per period: 52428 bytes
58276: 17:59:03.664 - ENet: Max queued data for transmission per peer: 512000 bytes
58276: 17:59:03.664 - ENet: Minimum retransmit timeout: 200
58276: 17:59:03.664 - ENet: No Maximum retransmit timeout
58276: 17:59:03.664 - ENet: Minimum timeout: 5000ms
58276: 17:59:03.664 - ENet: Maximum timeout: 30000ms
58276: 17:59:03.664 - ENet: Max Inbound Reliable Data Queued (awaiting resends of earlier sequence numbers) per peer : 163840 bytes
58276: 17:59:03.664 - ENet: Will validate inbound ENet datagram CRC if present
58276: 17:59:03.664 - ENet: No RTT ACK adjustment timeout
58276: 17:59:03.664 - ENet: Packet throttle enabled: True
58276: 17:59:03.664 - ENet: Default packet throttle: 32
58276: 17:59:03.664 - ENet: Packet throttle scale: 32
58276: 17:59:03.664 - ENet: Packet throttle counter: 7
58276: 17:59:03.664 - ENet: Round Trip throttle multiplier: 2
58276: 17:59:03.664 - ENet: Unreliable Queue timeout: 5ms
58276: 17:59:03.664 - ENet: AO: Initial queue size: 4096
58276: 17:59:03.664 - ENet: AO: Max consecutive ops: 200
58276: 17:59:03.664 - ENet: max pooled buffers in peer: 10
58276: 17:59:03.664 - ENet: Packet trace ring buffer size: 10
58276: 17:59:03.664 - ENet: No Application data inactivity timeout
58276: 17:59:03.664 - CMultiPoolBufferAllocator::GetAllocator() - "CENetHost"
58276: 17:59:03.664 - Config|INFO| New TCP: Max message size: 512000
58276: 17:59:03.664 - About to load application: Master from Photon.LoadBalancing
58276: 17:59:05.330 - Taking reference on default app domain
58276: 17:59:05.650 - Application: "Master" started in app domain: 2
58276: 17:59:05.650 - About to load application: Game from Photon.LoadBalancing
58276: 17:59:07.180 - Taking reference on default app domain
58276: 17:59:07.363 - Application: "Game" started in app domain: 3
58276: 17:59:07.363 - About to load application: NameServer from Photon.NameServer
58276: 17:59:08.869 - Taking reference on default app domain
58276: 17:59:09.006 - Application: "NameServer" started in app domain: 4
58276: 17:59:09.006 - About to load application: TestServer3 from TestServer3
58276: 17:59:10.520 - Taking reference on default app domain
58276: 17:59:10.599 - ERROR: Failed to start application: "TestServer3" in app domain: 5
51316: 17:59:10.599 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
58276: 17:59:10.599 - CService::OnException() - Exception: CManagedHost::StartApplication() - Failed to start application in AppDomain: 5 - 지정된 파일을 찾을 수 없습니다.
58276: 17:59:10.600 - Server shutting down...
58276: 17:59:10.600 - Shutdown monitoring enabled, 60000ms before process abort
58276: 17:59:10.600 - Notifying CLR applications of shutdown...
58276: 17:59:10.600 - RequestApplicationStop: 3
58276: 17:59:10.602 - RequestApplicationStop: 2
51316: 17:59:10.604 - CManagedHost::OnDomainUnload() - 5
58276: 17:59:10.605 - RequestApplicationStop: 4
58276: 17:59:10.606 - RequestStop: defalt app domain
58276: 17:59:10.607 - Shutting down NEW TCP Outbound Connection Manager...
58276: 17:59:10.607 - Shutting down ENet host...
58276: 17:59:10.607 - Disconnecting all peers...
58276: 17:59:10.607 - Shutting down socket servers...
58276: 17:59:10.607 - Shutting down ENet thread pool...
58276: 17:59:10.607 - Shutting down TCP inactivity timers...
58276: 17:59:10.608 - Timer queue stats: TCP Timers
58276: 17:59:10.608 - Stats are not available
58276: 17:59:10.608 - Shutting down ENet timers...
58276: 17:59:10.608 - Waiting for socket servers to shutdown...
58276: 17:59:10.608 - Shutting down I/O thread pool...
58276: 17:59:10.608 - Shutting down CLR applications...
51316: 17:59:10.643 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
58276: 17:59:10.646 - Shutting down network data traces...
58276: 17:59:10.646 - Waiting for network data traces to complete...
58276: 17:59:10.646 - Destroying servers
58276: 17:59:10.646 - Destroying WebRTC Outbound Connection Manager
58276: 17:59:10.646 - Destroying WebRTC Outbound Host
58276: 17:59:10.646 - Destroying outbound ICE connection manager
58276: 17:59:10.646 - Destroying ENet timer wheel
58276: 17:59:10.646 - Timer queue stats: ENetTimerWheel
58276: 17:59:10.646 - Stats are not available
58276: 17:59:10.646 - Destroying Network Data Trace factory
58276: 17:59:10.647 - Destroying ENet host
58276: 17:59:10.647 - Destroying WebRTC inactivity timer queue
58276: 17:59:10.647 - Destroying WebRTC host
58276: 17:59:10.647 - Destroying ICE connection manager
58276: 17:59:10.647 - Flushing stream socket allocator...
58276: 17:59:10.647 - Flushing UDP Chunk datagram socket allocator...
58276: 17:59:10.647 - Flushing NEW TCP socket allocator...
58276: 17:59:10.647 - Destroying TCP inactivity timer
58276: 17:59:10.647 - Flushing ENET buffer allocator...
58276: 17:59:10.647 - Flushing TCP buffer allocator...
58276: 17:59:10.647 - Flushing TCP buffer handle allocator...
58276: 17:59:10.647 - Destroying CLR applications
58276: 17:59:10.647 - ~CCLRApplicationCollection() - Waiting up to 10 seconds for the CLR to release all of our objects
51316: 17:59:10.652 - CManagedHost::OnDomainUnload() - 3
51316: 17:59:10.658 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
51316: 17:59:10.662 - CManagedHost::OnDomainUnload() - 4
51316: 17:59:10.667 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
51316: 17:59:10.671 - CManagedHost::OnDomainUnload() - 2
58276: 17:59:10.674 - ~CCLRApplicationCollection() - Done. All objects released
58276: 17:59:10.674 - ~CManagedHost() - Release default app domain
58276: 17:59:10.674 - CManagedHost::OnDomainUnload() - 1
58276: 17:59:10.674 - ~CManagedHost() - Waiting up to 10 seconds for CLR shutdown...
58276: 17:59:10.682 - ~CManagedHost
58276: 17:59:10.682 - Destroying ENet thread pool
58276: 17:59:10.682 - Destroying I/O thread pool
58276: 17:59:10.682 - Destroying HTTP File Server I/O thread pool
58276: 17:59:10.682 - Destroying ENet I/O thread pool
58276: 17:59:10.682 - Destroying ENet buffer allocator
58276: 17:59:10.682 - Destroying TCP buffer allocator
58276: 17:59:10.682 - Destroying TCP socket allocator
58276: 17:59:10.682 - Destroying NEW TCP socket allocator
58276: 17:59:10.682 - Destroying NEW TCP configuration
58276: 17:59:10.682 - Config|INFO| New TCP: Flushing TCP socket allocator...
58276: 17:59:10.682 - Config|INFO| New TCP: Flushing TCP buffer allocator...
58276: 17:59:10.682 - Config|INFO| New TCP: Flushing TCP buffer handle allocator...
58276: 17:59:10.682 - Config|INFO| New TCP: Flushing policy file buffer allocator...
58276: 17:59:10.682 - Destroying UDP Chunk inbound socket allocator
58276: 17:59:10.682 - Destroying shared datagram flow control data
58276: 17:59:10.682 - Shutdown complete...
28556: 17:59:10.683 - MessageBox: Photon Socket Server: LoadBalancing - 5.0.12.7770Failed to start service
Error code: 108
Instance Name = "LoadBalancing"
28556: 17:59:10.683 - Service shutting down: failed to start application. Errorcode: 108
28556: 17:59:10.783 - Service shut down complete
Thanks !!!
As you said, I changed the code and built it. The build was successful, and when I started it with PhotonControl.exe, I had Error message like upper.
0 -
"지정된 파일을 찾을 수 없습니다." means "The specified file could not be found."0
-
Hi @youb1649,
Thank you for choosing Photon!
I wanted to mention (for your for future readers) that we have a guide for migrating to v5.
And the ApplicationBase constructor change is mentioned there already.0 -
Are there any tutorials to step through Photon Server?
A lot of content is lacking for beginners' approach, and the articles on the Internet and books are old versions. In the end, it didn't work, so even if I completely deleted my coding and followed the Step-By-Step on the website, it didn't look like the explanation. Could you please explain why?
Error Message
64648: 16:01:23.767 - ---
64648: 16:01:23.767 - Service: "Photon Socket Server" starting
64648: 16:01:23.767 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
64648: 16:01:23.770 - Will produce at most: 10 crash dumps
64648: 16:01:23.770 - Construction of service object complete
64648: 16:01:23.773 - Server Starting...
64648: 16:01:23.773 - Tick count: 1977947468 (wraps in: 26.8174 days)
64648: 16:01:23.773 - Tick count 64: 1977947468
64648: 16:01:23.773 - ENet high resolution Tick count: 1977958137 (wraps in: 26.8172 days)
64648: 16:01:23.774 - Photon Version: 5.0.12.7770
64648: 16:01:23.774 - Photon Build: RELEASE - x64 - VS2019 (16.8) - 192829336
64648: 16:01:23.774 - PID: 72208
64648: 16:01:23.774 - EXE: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe
64648: 16:01:23.774 - OpenSSL 1.1.1i 8 Dec 2020
64648: 16:01:23.779 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
64648: 16:01:23.779 - CService::OnException() - Exception: CXMLConfiguration::LoadDocument() - Failed to locate required child element: "Instance" with tag: "Name" with value: "TestServer3" - Source: "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config"
64648: 16:01:23.780 - Server shutting down...
64648: 16:01:23.780 - Shutting down socket servers...
64648: 16:01:23.780 - Waiting for socket servers to shutdown...
64648: 16:01:23.780 - Destroying servers
64648: 16:01:23.780 - Destroying WebRTC Outbound Connection Manager
64648: 16:01:23.780 - Destroying WebRTC Outbound Host
64648: 16:01:23.780 - Destroying outbound ICE connection manager
64648: 16:01:23.780 - Destroying ENet timer wheel
64648: 16:01:23.780 - Destroying Network Data Trace factory
64648: 16:01:23.780 - Destroying ENet host
64648: 16:01:23.780 - Destroying WebRTC inactivity timer queue
64648: 16:01:23.780 - Destroying WebRTC host
64648: 16:01:23.780 - Destroying ICE connection manager
64648: 16:01:23.780 - Destroying TCP inactivity timer
64648: 16:01:23.780 - Destroying CLR applications
64648: 16:01:23.780 - Destroying ENet thread pool
64648: 16:01:23.780 - Destroying I/O thread pool
64648: 16:01:23.780 - Destroying HTTP File Server I/O thread pool
64648: 16:01:23.780 - Destroying ENet I/O thread pool
64648: 16:01:23.780 - Destroying ENet buffer allocator
64648: 16:01:23.780 - Destroying TCP buffer allocator
64648: 16:01:23.780 - Destroying TCP socket allocator
64648: 16:01:23.780 - Destroying NEW TCP socket allocator
64648: 16:01:23.780 - Destroying NEW TCP configuration
64648: 16:01:23.780 - Destroying UDP Chunk inbound socket allocator
64648: 16:01:23.780 - Destroying shared datagram flow control data
64648: 16:01:23.780 - Shutdown complete...
64648: 16:01:23.781 - Service shutting down: with Exception (1). Errorcode: 6
64648: 16:01:23.782 - Service shut down complete
11816: 16:01:29.807 - ---
11816: 16:01:29.807 - Service: "Photon Socket Server" starting
11816: 16:01:29.807 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
11816: 16:01:29.810 - Will produce at most: 10 crash dumps
11816: 16:01:29.810 - Construction of service object complete
11816: 16:01:29.813 - Server Starting...
11816: 16:01:29.813 - Tick count: 1977953500 (wraps in: 26.8173 days)
11816: 16:01:29.813 - Tick count 64: 1977953500
11816: 16:01:29.813 - ENet high resolution Tick count: 1977964176 (wraps in: 26.8172 days)
11816: 16:01:29.813 - Photon Version: 5.0.12.7770
11816: 16:01:29.813 - Photon Build: RELEASE - x64 - VS2019 (16.8) - 192829336
11816: 16:01:29.813 - PID: 73792
11816: 16:01:29.813 - EXE: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe
11816: 16:01:29.813 - OpenSSL 1.1.1i 8 Dec 2020
11816: 16:01:29.818 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
11816: 16:01:29.819 - CService::OnException() - Exception: CXMLConfiguration::LoadDocument() - Failed to locate required child element: "Instance" with tag: "Name" with value: "TestServer3" - Source: "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config"
11816: 16:01:29.819 - Server shutting down...
11816: 16:01:29.819 - Shutting down socket servers...
11816: 16:01:29.819 - Waiting for socket servers to shutdown...
11816: 16:01:29.819 - Destroying servers
11816: 16:01:29.819 - Destroying WebRTC Outbound Connection Manager
11816: 16:01:29.819 - Destroying WebRTC Outbound Host
11816: 16:01:29.819 - Destroying outbound ICE connection manager
11816: 16:01:29.819 - Destroying ENet timer wheel
11816: 16:01:29.819 - Destroying Network Data Trace factory
11816: 16:01:29.819 - Destroying ENet host
11816: 16:01:29.819 - Destroying WebRTC inactivity timer queue
11816: 16:01:29.819 - Destroying WebRTC host
11816: 16:01:29.819 - Destroying ICE connection manager
11816: 16:01:29.819 - Destroying TCP inactivity timer
11816: 16:01:29.819 - Destroying CLR applications
11816: 16:01:29.819 - Destroying ENet thread pool
11816: 16:01:29.819 - Destroying I/O thread pool
11816: 16:01:29.819 - Destroying HTTP File Server I/O thread pool
11816: 16:01:29.819 - Destroying ENet I/O thread pool
11816: 16:01:29.819 - Destroying ENet buffer allocator
11816: 16:01:29.819 - Destroying TCP buffer allocator
11816: 16:01:29.819 - Destroying TCP socket allocator
11816: 16:01:29.819 - Destroying NEW TCP socket allocator
11816: 16:01:29.819 - Destroying NEW TCP configuration
11816: 16:01:29.819 - Destroying UDP Chunk inbound socket allocator
11816: 16:01:29.819 - Destroying shared datagram flow control data
11816: 16:01:29.819 - Shutdown complete...
11816: 16:01:29.821 - Service shutting down: with Exception (1). Errorcode: 6
11816: 16:01:29.822 - Service shut down complete
0 -
hey, @youb1649
it looks like you are using config from old version of photon
```
11816: 16:01:29.819 - CService::OnException() - Exception: CXMLConfiguration::LoadDocument() - Failed to locate required child element: "Instance" with tag: "Name" with value: "TestServer3" - Source: "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config"
```
now 'TestServer3' should be an instance name. there are also other changes. please read careful docs about transition from v4 to v5
best,
ilya0 -
30180: 10:02:23.386 - ---
30180: 10:02:23.386 - Service: "Photon Socket Server" starting
30180: 10:02:23.386 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
30180: 10:02:23.387 - Config|INFO| Adding config path macro: "[CONFIG]" - "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64"
30180: 10:02:23.387 - Config|INFO| Adding config path macro: "[DEPLOY]" - "[CONFIG]\.."
30180: 10:02:23.387 - Config|INFO| Adding config path macro: "[EXE]" - "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64"
30180: 10:02:23.390 - Will produce at most: 10 crash dumps
30180: 10:02:23.390 - Construction of service object complete
30180: 10:02:23.394 - Server Starting...
30180: 10:02:23.394 - Tick count: 2042807078 (wraps in: 26.0667 days)
30180: 10:02:23.394 - Tick count 64: 2042807078
30180: 10:02:23.394 - ENet high resolution Tick count: 2042817757 (wraps in: 26.0665 days)
30180: 10:02:23.394 - Photon Version: 5.0.12.7770
30180: 10:02:23.394 - Photon Build: RELEASE - x64 - VS2019 (16.8) - 192829336
30180: 10:02:23.394 - PID: 19160
30180: 10:02:23.394 - EXE: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe
30180: 10:02:23.394 - OpenSSL 1.1.1i 8 Dec 2020
30180: 10:02:23.399 - Config File: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonServer.config
30180: 10:02:23.400 - Will NOT log unimportant exceptions
30180: 10:02:23.401 - Performance Counter Configuration for: "Photon Socket Server"
30180: 10:02:23.401 - First Counter Index: 15186
30180: 10:02:23.401 - Last Counter Index: 16222
30180: 10:02:23.401 - First Help Index: 15187
30180: 10:02:23.402 - Last Help Index: 16223
30180: 10:02:23.402 - Object List: 15186 15314 15424 15544 15584 15820 15948 15966 16020 16080 16160 16198
30180: 10:02:23.402 - Perf Ini File: Photon_Socket_Server_F6FFD0B89D56C5BDF8BF149AF76A7F92.ini
30180: 10:02:23.402 - Schema Checksum: F6FFD0B89D56C5BDF8BF149AF76A7F92
30180: 10:02:23.402 - DLL name: PhotonSocketServerCounters-F6FFD0B89D56C5BDF8BF149AF76A7F92.dll
30180: 10:02:23.403 - Counters are installed? - "Photon Socket Server"
30180: 10:02:23.428 - Shutdown timeout enabled: 60000ms
30180: 10:02:23.428 - Starting I/O thread pool with 4 threads
22776: 10:02:23.429 - InitialiseWorkerThread - I/O thread - COM enabled
71148: 10:02:23.429 - InitialiseWorkerThread - I/O thread - COM enabled
72280: 10:02:23.429 - InitialiseWorkerThread - I/O thread - COM enabled
30180: 10:02:23.429 - ENet: buffer size: 4096
30180: 10:02:23.429 - ENet: buffer pool: 5000
30180: 10:02:23.429 - Max message size: 512000
30180: 10:02:23.429 - CMultiPoolBufferAllocator::GetAllocator() - "CENetThreadPool"
27196: 10:02:23.429 - InitialiseWorkerThread - I/O thread - COM enabled
50864: 10:02:23.429 - Initialise - ENet thread pool thread
19688: 10:02:23.429 - Initialise - ENet thread pool thread
53604: 10:02:23.429 - Initialise - ENet thread pool thread
72880: 10:02:23.429 - Initialise - ENet thread pool thread
75208: 10:02:23.429 - Initialise - ENet thread pool thread
74592: 10:02:23.430 - Initialise - ENet thread pool thread
71552: 10:02:23.430 - Initialise - ENet thread pool thread
30180: 10:02:23.430 - Starting ENet thread pool with the following settings
30180: 10:02:23.430 - InitialThreads: 8 threads
30180: 10:02:23.430 - MinThreads: 8 threads
30180: 10:02:23.430 - Thread pool is fixed size
30180: 10:02:23.430 - OnlyDispatchTimers: False
75072: 10:02:23.430 - Initialise - ENet thread pool thread
30180: 10:02:24.614 - Resolution ~ 147952 - 14ms
30180: 10:02:24.614 - ENet timer granularity: 15ms
30180: 10:02:24.614 - ENet high performance timers: False
30180: 10:02:24.615 - Config|INFO| TCP S2S: no explicit configuration, using defaults. Add a <S2S> node to configure.
30180: 10:02:24.615 - Config|INFO| TCP S2S: - flow control: Max queued bytes: 50000
30180: 10:02:24.615 - Config|INFO| TCP S2S: - flow control: Notification step size: 25
30180: 10:02:24.615 - Config|INFO| TCP S2S: - no read timeout
30180: 10:02:24.615 - Config|INFO| TCP S2S: - rate limit: 32000 bytes per 250ms (125KB/sec)
30180: 10:02:24.615 - Config|INFO| TCP S2S: Nagle: disabled
30180: 10:02:24.615 - Config|INFO| TCP S2S: PingFrequency: 2500
30180: 10:02:24.615 - Config|INFO| TCP S2S: MaxInboundMessageSize: 512000
30180: 10:02:24.615 - Config|INFO| TCP S2S: MaxOutboundMessageSize: 512000
30180: 10:02:24.615 - Config|INFO| TCP S2S: ConnectTimeout: 30000ms
30180: 10:02:24.615 - Config|INFO| TCP S2S: No App Data inactivity timeout
30180: 10:02:24.615 - Config|INFO| TCP S2S: No write completion timeout
30180: 10:02:24.620 - GetRuntime - About to load CLR - versions available:
30180: 10:02:24.620 - v2.0.50727
30180: 10:02:24.620 - v4.0.30319
30180: 10:02:24.620 - Configuration requests: "v4.0.30319"
30180: 10:02:24.620 - About to load version: "v4.0.30319"
30180: 10:02:24.625 - About to load runtime: PhotonHostRuntime.PhotonDomainManager from PhotonHostRuntime, Culture=neutral, PublicKeyToken=02C301B61B060C4D
30180: 10:02:24.625 - CLRBaseDirectory set to "D:\photon-server-sdk_v5-0-12-24499-rc1\deploy"
30180: 10:02:24.626 - Start: About to load CLR - versions available:
30180: 10:02:24.626 - v2.0.50727
30180: 10:02:24.626 - v4.0.30319
30180: 10:02:24.626 - No preference in configuration file, will load latest.
30180: 10:02:24.626 - About to load version: "v4.0.30319"
30180: 10:02:24.626 - Using server GC
30180: 10:02:24.626 - GC: Server garbage collector enabled
30180: 10:02:24.626 - GC: Concurrent garbage collector enabled
30180: 10:02:24.626 - GC: Trim on commit disabled
30180: 10:02:24.626 - Using CLR config file: \photon-server-sdk_v5-0-12-24499-rc1\deploy\bin_Win64\PhotonSocketServer.exe.config
30180: 10:02:24.626 - Loaded version: "v4.0.30319"
30180: 10:02:24.851 - Photon host runtime loaded
30180: 10:02:26.481 - License is valid.
30180: 10:02:26.481 - Licensed for 100 concurrent connections.
30180: 10:02:26.481 - ENet: Ping interval: 1000 ms
30180: 10:02:26.481 - ENet: Data sending delay: 5 ms
30180: 10:02:26.481 - ENet: ACK sending delay: 5 ms
30180: 10:02:26.481 - ENet: Max Reliable Data In Transit (awaiting ACKs) per peer : 51200 bytes
30180: 10:02:26.481 - ENet: Per peer bandwidth limit
30180: 10:02:26.481 - ENet: Transmit Rate Limit: 256 KB/Sec
30180: 10:02:26.481 - ENet: Limit period: 200ms
30180: 10:02:26.481 - ENet: Limit per period: 52428 bytes
30180: 10:02:26.481 - ENet: Max queued data for transmission per peer: 512000 bytes
30180: 10:02:26.481 - ENet: Minimum retransmit timeout: 200
30180: 10:02:26.481 - ENet: No Maximum retransmit timeout
30180: 10:02:26.481 - ENet: Minimum timeout: 5000ms
30180: 10:02:26.481 - ENet: Maximum timeout: 30000ms
30180: 10:02:26.481 - ENet: Max Inbound Reliable Data Queued (awaiting resends of earlier sequence numbers) per peer : 163840 bytes
30180: 10:02:26.481 - ENet: Will validate inbound ENet datagram CRC if present
30180: 10:02:26.481 - ENet: No RTT ACK adjustment timeout
30180: 10:02:26.481 - ENet: Packet throttle enabled: True
30180: 10:02:26.481 - ENet: Default packet throttle: 32
30180: 10:02:26.481 - ENet: Packet throttle scale: 32
30180: 10:02:26.481 - ENet: Packet throttle counter: 7
30180: 10:02:26.481 - ENet: Round Trip throttle multiplier: 2
30180: 10:02:26.481 - ENet: Unreliable Queue timeout: 5ms
30180: 10:02:26.481 - ENet: AO: Initial queue size: 4096
30180: 10:02:26.481 - ENet: AO: Max consecutive ops: 200
30180: 10:02:26.481 - ENet: max pooled buffers in peer: 10
30180: 10:02:26.481 - ENet: Packet trace ring buffer size: 10
30180: 10:02:26.481 - ENet: No Application data inactivity timeout
30180: 10:02:26.481 - CMultiPoolBufferAllocator::GetAllocator() - "CENetHost"
30180: 10:02:26.481 - Config|INFO| New TCP: Max message size: 512000
30180: 10:02:26.482 - About to load application: TestServer3 from Photon.TestServer3
30180: 10:02:28.040 - Taking reference on default app domain
30180: 10:02:28.134 - ERROR: Failed to start application: "TestServer3" in app domain: 2
59068: 10:02:28.134 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
30180: 10:02:28.134 - CService::OnException() - Exception: CManagedHost::StartApplication() - Failed to start application in AppDomain: 2 - 지정된 파일을 찾을 수 없습니다.
30180: 10:02:28.135 - Server shutting down...
30180: 10:02:28.135 - Shutdown monitoring enabled, 60000ms before process abort
30180: 10:02:28.135 - Notifying CLR applications of shutdown...
30180: 10:02:28.135 - RequestStop: defalt app domain
30180: 10:02:28.136 - Shutting down NEW TCP Outbound Connection Manager...
30180: 10:02:28.136 - Shutting down ENet host...
30180: 10:02:28.136 - Disconnecting all peers...
30180: 10:02:28.136 - Shutting down socket servers...
30180: 10:02:28.136 - Shutting down ENet thread pool...
30180: 10:02:28.136 - Shutting down TCP inactivity timers...
30180: 10:02:28.136 - Timer queue stats: TCP Timers
30180: 10:02:28.136 - Stats are not available
30180: 10:02:28.136 - Shutting down ENet timers...
30180: 10:02:28.137 - Waiting for socket servers to shutdown...
30180: 10:02:28.137 - Shutting down I/O thread pool...
30180: 10:02:28.137 - Shutting down CLR applications...
30180: 10:02:28.137 - Shutting down network data traces...
30180: 10:02:28.137 - Waiting for network data traces to complete...
30180: 10:02:28.137 - Destroying servers
30180: 10:02:28.137 - Destroying WebRTC Outbound Connection Manager
30180: 10:02:28.137 - Destroying WebRTC Outbound Host
30180: 10:02:28.137 - Destroying outbound ICE connection manager
30180: 10:02:28.137 - Destroying ENet timer wheel
30180: 10:02:28.137 - Timer queue stats: ENetTimerWheel
30180: 10:02:28.137 - Stats are not available
30180: 10:02:28.137 - Destroying Network Data Trace factory
30180: 10:02:28.137 - Destroying ENet host
30180: 10:02:28.137 - Destroying WebRTC inactivity timer queue
30180: 10:02:28.137 - Destroying WebRTC host
30180: 10:02:28.137 - Destroying ICE connection manager
30180: 10:02:28.137 - Flushing stream socket allocator...
30180: 10:02:28.137 - Flushing UDP Chunk datagram socket allocator...
30180: 10:02:28.137 - Flushing NEW TCP socket allocator...
30180: 10:02:28.137 - Destroying TCP inactivity timer
30180: 10:02:28.137 - Flushing ENET buffer allocator...
30180: 10:02:28.137 - Flushing TCP buffer allocator...
30180: 10:02:28.137 - Flushing TCP buffer handle allocator...
30180: 10:02:28.137 - Destroying CLR applications
30180: 10:02:28.137 - ~CCLRApplicationCollection() - Waiting up to 10 seconds for the CLR to release all of our objects
59068: 10:02:28.140 - CManagedHost::OnDomainUnload() - 2
30180: 10:02:28.141 - ~CCLRApplicationCollection() - Done. All objects released
30180: 10:02:28.141 - ~CManagedHost() - Release default app domain
30180: 10:02:28.141 - CManagedHost::OnDomainUnload() - 1
30180: 10:02:28.141 - ~CManagedHost() - Waiting up to 10 seconds for CLR shutdown...
30180: 10:02:28.152 - ~CManagedHost
30180: 10:02:28.152 - Destroying ENet thread pool
30180: 10:02:28.152 - Destroying I/O thread pool
30180: 10:02:28.152 - Destroying HTTP File Server I/O thread pool
30180: 10:02:28.152 - Destroying ENet I/O thread pool
30180: 10:02:28.152 - Destroying ENet buffer allocator
30180: 10:02:28.152 - Destroying TCP buffer allocator
30180: 10:02:28.152 - Destroying TCP socket allocator
30180: 10:02:28.152 - Destroying NEW TCP socket allocator
30180: 10:02:28.152 - Destroying NEW TCP configuration
30180: 10:02:28.152 - Config|INFO| New TCP: Flushing TCP socket allocator...
30180: 10:02:28.152 - Config|INFO| New TCP: Flushing TCP buffer allocator...
30180: 10:02:28.152 - Config|INFO| New TCP: Flushing TCP buffer handle allocator...
30180: 10:02:28.152 - Config|INFO| New TCP: Flushing policy file buffer allocator...
30180: 10:02:28.152 - Destroying UDP Chunk inbound socket allocator
30180: 10:02:28.152 - Destroying shared datagram flow control data
30180: 10:02:28.152 - Shutdown complete...
30180: 10:02:28.154 - Service shutting down: failed to start application. Errorcode: 108
30180: 10:02:28.279 - Service shut down complete
0 -
30180: 10:02:28.040 - Taking reference on default app domain
30180: 10:02:28.134 - ERROR: Failed to start application: "TestServer3" in app domain: 2
59068: 10:02:28.134 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
30180: 10:02:28.134 - CService::OnException() - Exception: CManagedHost::StartApplication() - Failed to start application in AppDomain: 2 - 지정된 파일을 찾을 수 없습니다.
30180: 10:02:28.135 - Server shutting down...
"지정된 파일을 찾을 수 없습니다." means, It can't find the specified file.
<Instance Name="Test"
MaxMessageSize="512000"
MaxQueuedDataPerPeer="512000"
PerPeerMaxReliableDataInTransit="51200"
PerPeerTransmitRateLimitKBSec="256"
PerPeerTransmitRatePeriodMilliseconds="200"
MinimumTimeout="5000"
MaximumTimeout="30000"
DisplayName="Test">
<UDPListeners>
<UDPListener
IPAddress="0.0.0.0"
Port="6262"
OverrideApplication="TestServer3">
</UDPListener>
</UDPListeners>
<!-- 0.0.0.0 opens listeners on all available IPs. Machines with multiple IPs should define the correct one here. -->
<TCPListeners>
<!-- TCP listener for Game clients on Master application -->
<TCPListener
IPAddress="0.0.0.0"
Port="6263"
OverrideApplication="TestServer3"
InactivityTimeout="10000"
>
</TCPListener>
</TCPListeners>
<HTTPListeners>
<HTTPListener
Name="*:[PORT]::TestServer3"
IPAddress="0.0.0.0"
Port="6264"
DisableNagle="true"
InactivityTimeout="10000"
AppDataInactivityTimeout="15000">
<Routing>
<Route
Url="/*"
OverrideApplication="TestServer3"
PeerType="WebSocket"
Counters="false"
/>
</Routing>
</HTTPListener>
</HTTPListeners>
<!-- Defines the Photon Runtime Assembly to use. -->
<Runtime
Assembly="PhotonHostRuntime, Culture=neutral"
Type="PhotonHostRuntime.PhotonDomainManager"
UnhandledExceptionPolicy="TerminateProcess">
</Runtime>
<Applications Default="TestServers">
<Application
Name="TestServer3"
BaseDirectory="TestServer3"
Assembly="Photon.TestServer3"
Type="Photon.TestServer3.PhotonAckServer">
</Application>
</Applications>
</Instance>
0 -
using Microsoft.Extensions.Configuration;
using Photon.SocketServer;
namespace Photon.TestServer3
{
public class PhotonAckServer : ApplicationBase
{
static PhotonAckServer()
{
}
public PhotonAckServer()
: this(LoadConfiguration())
{ }
protected PhotonAckServer(IConfiguration configuration)
: base(configuration)
{ }
private static IConfiguration LoadConfiguration()
{
return null;
}
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new PhotonAckPeer(initRequest);
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
0 -
The last upper one is the main class to start and the second upper one is the config setting.
I'm still reading your documents. But I can't find a suitable clue (what my mistake is) to run my server so far. Could you please provide a simple example code to better understand it for biginners? not like massive size code.
anyway, thanks for the quick answers.0 -
you config and application code look fine except LoadConfiguration. You have to return non null value. it can be new ConfiguratioinBuilder().Build(). That mistake may lead to load failure. Please check also PhotonClr.log
Another thing to check is place where you put your assembly. it should be in deploy/TestServer3/bin
best,
ilya0 -
using Microsoft.Extensions.Configuration;
using Photon.SocketServer;
using System.IO;
namespace PhotonAckServer
{
public class PhotonAckServer : ApplicationBase
{
public PhotonAckServer() : this(LoadConfiguration())
{
}
public PhotonAckServer(IConfiguration configuration) : base(configuration)
{ }
private static IConfiguration LoadConfiguration()
{
var cb = new ConfigurationBuilder();
var cbpath = Path.GetDirectoryName(typeof(PhotonAckServer).Assembly.CodeBase).Remove(0, 6);
return cb.AddXmlFile(Path.Combine(cbpath, "PhotonAckServer.xml.config")).Build();
}
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new PhotonAckPeer(initRequest);
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
0 -
76320: 15:33:05.352 - About to load application: PhotonAckServer from PhotonAckServer
76320: 15:33:06.888 - Taking reference on default app domain
76320: 15:33:07.035 - ERROR: Failed to start application: "PhotonAckServer" in app domain: 2
76320: 15:33:07.035 - CService::OnException() - Exception: CManagedHost::StartApplication() - Failed to start application in AppDomain: 2 - 지정된 파일을 찾을 수 없습니다.
75392: 15:33:07.035 - CManagedHost::OnDefaultAction() - OPR_AppDomainUnload - eUnloadAppDomain
76320: 15:33:07.035 - Server shutting down...
0 -
I spent some days with this Photon Server solution as a beginner who wants to find a stable server engine composed of a structure of C/S. It's tough to understand the details with the elementary documents on web site. Maybe you need to provide some useful tutorial codes for beginners. That is better than the simple documents. To be honest, if you're a developer, isn't it better to provide tutorial code than to provide documentation explaining the details one by one?
0 -
hi, @youb1649
as I wrote you may have two issues one with configuration loading and second is related to path. Where did you put your server code? in the right folder?
Also you may use Fusion++ tool(https://github.com/awaescher/Fusion/releases) to see where Photon is looking for your server code. You will see Errors in list. Find your lib among the errors and see why it was not loaded
PS: I'm on vacation next two weeks
best,
ilya
0 -
Hi @youb1649,I spent some days with this Photon Server solution as a beginner who wants to find a stable server engine composed of a structure of C/S. It's tough to understand the details with the elementary documents on web site. Maybe you need to provide some useful tutorial codes for beginners. That is better than the simple documents. To be honest, if you're a developer, isn't it better to provide tutorial code than to provide documentation explaining the details one by one?
I'm sorry you ran into issues with implementing a new server application from scratch using Photon Server v5 RC1 SDK.
We are still in the process of updating our documentation and we will make sure to port this v4 guide to v5 soon.
However, I wanted to ask you why didn't you choose to use custom server plugins instead? that's what we recommend? or you need a different architecture and design than the one we have in LoadBalancing instance (what we run on the Photon Cloud)?0 -
I'm a researcher who is looking for a solution for Digital Twin systems.
I want to compose a metaverse environment like the Second Life.
The metaverse system should be capable of carrying out a lot of people and supporting/providing information and communications simultaneously.
Therefore, I think the Photon Server looks suitable for it rather than PUN and Bolt, etc.
I tried to compose a simple echo server, but understanding and debugging the error message of PhotonControl.exe is not easy for a beginner.
Could you please give me some tips?0 -
Hi @youb1649,I'm a researcher who is looking for a solution for Digital Twin systems.
I want to compose a metaverse environment like the Second Life.I tried to compose a simple echo server,
But we're here to help you make it and make the guide based on your feedback and experience.Could you please give me some tips?
But best tip is logging is your friend, use it and share it with us whenever you're stuck.understanding and debugging the error message of PhotonControl.exe is not easy for a beginner.0 -
Are there any tutorials to step through Photon Server?
A lot of content is lacking for beginners' approach, and the articles on the Internet and books are old versions. In the end, it didn't work, so even if I completely deleted my coding and followed the Step-By-Step on the website, it didn't look like the explanation. Could you please explain why?
Multiplayer Game Programming: Architecting Networked Games - try it. That's a huge problem with finding photon-related books. But this service https://freebooksummary.com/category/if-i-stay (by the way, that's my fav book for now) helps me to find the needed one. I hope we'll see some new literature on this theme.
-1