Dedicated Server API Client Communication

Discuss the Dedicated Server Tools developed by Nadeo Live such as ManiaLive, Trust Circles, Dedicated Manager, Competition Manager and Lobbies

Moderator: NADEO

User avatar
Jojo_44
Posts: 500
Joined: 12 Jul 2010, 15:58
Location: Germany->Bavaria
Contact:

Re: Dedicated Server API Client Communication

Post by Jojo_44 »

I´m running out of ideas ;)

Just to clarify this:

The interrupts occur with the original nadeo library and also with the new one from Big_Boo ?

Maybe echoing out the data variable before returning false would help to get some information ?

Jojo
Image
my english sounds very unfriendly but it isn´t ;)
The_Big_Boo
Posts: 1041
Joined: 15 Jun 2010, 15:46

Re: Dedicated Server API Client Communication

Post by The_Big_Boo »

kremsy wrote:

Code: Select all

[ManiaControl DEBUG]: Fatal Exception: Connection interrupted while writing
This is something new. But it also means there's something really wrong, which lower the chances that it comes from my library... so, unfortunately, it likely comes from somewhere else.


However, can you apply this patch so we get more information about the socket state

Code: Select all

diff --git a/libraries/Maniaplanet/DedicatedServer/Xmlrpc/GbxRemote.php b/libraries/Maniaplanet/DedicatedServer/Xmlrpc/GbxRemote.php
index e6deb62..3cc0c44 100644
--- a/libraries/Maniaplanet/DedicatedServer/Xmlrpc/GbxRemote.php
+++ b/libraries/Maniaplanet/DedicatedServer/Xmlrpc/GbxRemote.php
@@ -218,7 +218,7 @@
 	{
 		$header = $this->read(8);
 		if($header === false)
-			throw new TransportException('Connection interrupted while reading header', TransportException::INTERRUPTED);
+			throw new TransportException('Connection interrupted while reading header '.print_r(stream_get_meta_data($this->socket), true), TransportException::INTERRUPTED);
 
 		extract(unpack('Vsize/Vhandle', $header));
 		/** @var $size int */
@@ -231,7 +231,7 @@
 
 		$data = $this->read($size);
 		if($data === false)
-			throw new TransportException('Connection interrupted while reading data', TransportException::INTERRUPTED);
+			throw new TransportException('Connection interrupted while reading data '.print_r(stream_get_meta_data($this->socket), true), TransportException::INTERRUPTED);
 
 		$this->lastNetworkActivity = time();
 		return array($handle, $data);
@@ -245,7 +245,7 @@
 	{
 		$data = pack('V2a*', strlen($xml), ++$this->requestHandle, $xml);
 		if(!$this->write($data))
-			throw new TransportException('Connection interrupted while writing', TransportException::INTERRUPTED);
+			throw new TransportException('Connection interrupted while writing '.print_r(stream_get_meta_data($this->socket), true), TransportException::INTERRUPTED);
 		$this->lastNetworkActivity = time();
 	}
 


Edit: actually, could you also update the dedicated-api library upto at least this commit (the more recent ones concerning the Connection class "refresh")? Because, I quickly checked and saw the version you're using is way behind mine so it doesn't really help finding issues ^^

Edit 2: by any chance, can your interruptions issues be related in any way to your AsynchronousFileReader? I mean, this report strangely shows the same kind of symptoms (timeout, no data received at all) :? I'm not saying this is the cause but it might be interesting to look into this more closely.
OS: Win 7 Pro x64
RAM: 2x4GB Corsair @ 1600MHz
CPU: Intel i5 760 @ 3.6GHz
Mobo: Asus P7P55D-E
GPU: NVidia GTX 760 2GB
HDD: WD Black 1TB
Sound: VIA VT1828S (onboard)
Peripherals: Razer DeathAdder - Razer DeathStalker - Logitech F310
The_Big_Boo
Posts: 1041
Joined: 15 Jun 2010, 15:46

Re: Dedicated Server API Client Communication

Post by The_Big_Boo »

kremsy wrote:What I don't really understand in the changes is, why you combined chatSend and chatSendServerMessage.
I actually had in mind that only chatSendServerMessage is necessary because making the server "speaking" like any player is weird (and ugly anyway). But using chatSend is shorter than chatSendServerMessage thus I decided to merge it.
I can still:
- make isServerMessage argument default to true (though it breaks a bit compatibility)
- undeprecate chatSendServerMessage while keeping the current chatSend
- undeprecate chatSendServerMessage and remove the isServerMessage argument in chatSend

However, before choosing any of these choices, what exactly is bothering you with this change?
OS: Win 7 Pro x64
RAM: 2x4GB Corsair @ 1600MHz
CPU: Intel i5 760 @ 3.6GHz
Mobo: Asus P7P55D-E
GPU: NVidia GTX 760 2GB
HDD: WD Black 1TB
Sound: VIA VT1828S (onboard)
Peripherals: Razer DeathAdder - Razer DeathStalker - Logitech F310
User avatar
steeffeen
Translator
Translator
Posts: 2472
Joined: 14 Oct 2012, 16:22
Location: Germany

Re: Dedicated Server API Client Communication

Post by steeffeen »

kremsy wrote:I just think it can get sometimes weird [...] if the Method names are differing from the official DedicatedServer Method names
this.
imo the dedi-api is an interface to the dedi and not a framework that does additional logic
    Game Mode and Title Pack Creator, Developer, ShootMania-Player & more

    ManiaControl, FancyManiaLinks
    Post Reply

    Return to “Dedicated Server Tools”

    Who is online

    Users browsing this forum: No registered users and 1 guest