Beta Test > FSHost 3.1 Beta (INACTIVE)

Data Rate Kick Option

<< < (2/3) > >>

Russell Gilbert:
Up until just a couple of days ago, I would have probably said no, but I can now say a definite "yes", it's possible for FS2004 to send data at a much higher rate than the visual frame rate.

I spent some time this weekend implementing this great feature where users would get warning messages in the chat window when their data rate was above a specified limit.  After a number of warnings, they'd get kicked.  Trouble is that I then discovered that when FSHost kicks someone and they reconnect, they still have the first server player in their chat list, so now they have two of them.  I've seen this before and never knew why it happened, but I also never really worried about it too much.  The problem is that FS2004 still sees both of these server players as real players, even though they have the same IP address.  So it happily sends all of its location data to BOTH of the server players, and the server ends up getting data at a rate that's twice the visual frame rate.  If the player gets kicked again and reconnects, he'll have 3 server players in the list, and the server will receive data at 3 times the visual rate.  And then 4, 5, etc.  :(

The really confusing thing is that this doesn't happen when FS itself is hosting the session -- only when FSHost hosts it.  I spent quite a while tracing out the DirectPlay messages that FS sends when it kicks someone vs. the messages that FSHost sends, and they're absolutely identical.  I have no idea what's causing the problem.

And to make it worse, I had to remove the whole feature from 3.1 beta 27 after all that hard work, because short of restarting their FS, there's nothing the user can do to fix it on his end  >:(

Suggestions welcome on this one...  what a mess.

Russell

Bob:

--- Quote ---short of restarting their FS
--- End quote ---

Surely for the few that this happens to , the option to ask the user to:
 - Leave the session,
 - Reset thier fps,
 - restart FS - and then rejoin the session,

is better then the effect that a high data rate potentialy has on the other players in a busy session. For anyone this is a pain, to leave and retart FS, but the better of two evils perhaps ?

n3306tx:
At least this explains the higher data rates as it was after we got kicked and rejoined we noticed it.  I always wondered why after rejoining after an unintended kick, that the player names would show twice,

Well, I'm not not programmer and not real savvy on the inner workings of client/server software, but I think you are saying when someone gets kicked, FS on the client machine keeps an instance of the player running and then when reconnecting, that instance and a new instance connects to FSHost which is why we see double names?  Or is it something on the FSHost server side that is holding the instances?  If FSHost was holding this data in a variable, just wondering if there was someway to clear or reset it so as it would only see one instance.

IF I'm way off base here, please just let me know.  Just a thought I had.

Maybe instead of kicking the player based on "assummed" high frame rates, just have FSHost send that player a private message every so often asking them to please disconnect and reboot their flightsim.  Even if they don't at least the message would only be seen by the "violator".  I think WestCoast ATC also had some type of proprietary software to detect FPS on users machines when they joined the server.  I suppose it works in a similar way, but don't really know. 

I also know when there is more than one instance of a player in the chatbox, then that is a sure bet that FS will hang on shutdown and reboot.  I've gone into the FSHost server and manually kicked all instances of myself out and FS shutdown ok.  So I guess what I am getting at is...If there are more than one instance of a player, instead of the player rebooting FS, can the FSHost admin just kick all instances of the player and then have the player reconnect?   

Russell Gilbert:

--- Quote from: n3306tx on August 04, 2006, 05:25:57 PM ---I think you are saying when someone gets kicked, FS on the client machine keeps an instance of the player running and then when reconnecting, that instance and a new instance connects to FSHost which is why we see double names?
--- End quote ---

Yeah, pretty much.  The problem is in FS itself, not FSHost.  FS is keeping the original server player in its own internal player list so it then has two copies of the same player and sends data to both of them.  Since both of them are the server, the server gets two copies of the data.  But FS only thinks that the first server player is still connected -- it's not really.  But since it does have a valid connection with the second server player, I guess it somehow sends all the data across that connection.  And unfortunately FSHost never sees any of the duplications, so there's nothing it (or an FSHost admin) can do.


--- Quote ---Maybe instead of kicking the player based on "assummed" high frame rates, just have FSHost send that player a private message every so often asking them to please disconnect and reboot their flightsim.  Even if they don't at least the message would only be seen by the "violator".  I think WestCoast ATC also had some type of proprietary software to detect FPS on users machines when they joined the server.
--- End quote ---

Yeah, this might be the best option actually, to just continually send private chat messages to the player telling them to lock their frame rate.  Only problem is that if they've already done that, it'll also have to tell them that in some instances they may have to restart their FS also.  Could be a long message.

Russell

CowBoyGuy:

--- Quote from: Russell Gilbert on August 07, 2006, 10:04:44 AM ---Could be a long message.
--- End quote ---

Would the long message scrolling across the screen slow down the FPS?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version