Join room problem

rokawar
rokawar ✭✭
Hello,

In my project, i use one server that i host myself and i use photon cloud in the same time.

I have upgraded my project to the lasted PUN version (1.24) and i think that you have a change on your cloud and you don't have updated the server version, i explain:

On photon cloud server :

Player A create a room.
Player B join it.
Player B leave it.
Player B join it again.

Everything is ok.

Now on my self hosted :

Player A create a room.
Player B join it.
Player B leave it.
Player B try to join it again but he can't join and i don't receive any call back.

I'm able to join others room but not able to join a room that i have leave.

This happen only on my self hosting.

Some change has been done on your cloud and not updated to the server version? or maybe i don't have the change on my server side?

I use the version 3.2.6.2037

Thank , have a good day.

Comments

  • For your information, after that i have upgraded my photon server to the lastest version the problem is still that same.

    I have tested your "worker demo" on my self hosting and if a player leave a room, he can't join it anymore. But he can join the other room as well.

    Any solutions?
  • Usually, there is nothing that keeps a specific client from joining any room.

    The timing might be different for the local hosted Photon:
    If you are fast, you might be trying to join the room before your disconnect arrived on the Master Server. If you have a 2 player room, the Master might still assume the room as full.
    Can you reproduce the issue when you wait a moment before you join again?
  • With one video : https://www.youtube.com/watch?v=Mgy3TmK ... e=youtu.be

    -Lasted version of PUN
    -Lasted version of Photon Server
    - Self hosting.

    Send me a private message if you want the IP of my test server.
  • Any news?
  • We ran the unit test for this case on that server and it worked.

    A video doesn't show what's happening behind the scenes. Maybe it's some simple workflow issue in the code.
    In best case I'd have a minimal project to reproduce this in. Can you provide something?
  • Tobias,
    A video doesn't show what's happening behind the scenes. Maybe it's some simple workflow issue in the code.

    I have used your default demo loaded from the asset store,so this can't come the code.
    I have just setup the self hosting with the IP of my server.
    In best case I'd have a minimal project to reproduce this in. Can you provide something?

    Like i have already said, the unity project is your own demo provided on unity asset store without any change on the code.

    Everything work fine if i connect to your cloud server but when i setup the IP of my own server who run the loadbalancing this glitch come.

    New info for you , when i'm not able to join a room like showed in the video, if i stop playing unity and click play again i'm able to join the room again.

    I send the IP of my server by email and like i have already said :

    -Lasted version of PUN ( your demo on the asset store)
    -Lasted version of Photon Server (without any code change just started the loadbalancing)
    - Self hosting.

    Thank
  • I tested PUN 1.24 on a local server and couldn't reproduce the issue. I am clueless what causes this.

    Let's try to get some debug info. In the worker menu in Awake() add this:
    PhotonNetwork.networkingPeer.DebugOut = DebugLevel.ALL;
    PhotonNetwork.logLevel = PhotonLogLevel.Full;
    In NetworkingPeer.OnOperationResponse add this as first line of code:
    Debug.Log(operationResponse.ToStringFull());

    If the console now logs some error (response) from the server, we need to take a look at the server's logs.
  • On the first attempt to join the room when it work (when i can join/ i have replaced the ip to the * character, you have it in my email) :

    -OpJoinRoom()
    -JoinedLobby
    -queueIncomingCommand() NC(0|6 r/u: 6/0 st/r#/rt:0/0/0) channel seq# r/u: 5/1
    -OperationResponse 226: ReturnCode: 0 (). Parameters: {(Byte)230=(String)**.**.**.**:5056, (Byte)219=(Byte)0}
    -OperationResponse 226: ReturnCode: 0.
    - .... procedural disconnect/connect .....

    Now when i have leave the room (click on return lobby) and when i try to join it again :

    -OpJoinRoom()
    JoinedLobby
    -queueIncomingCommand() NC(0|6 r/u: 7/0 st/r#/rt:0/0/0) channel seq# r/u: 6/1
    -OperationResponse 226: ReturnCode: 32761 (User is blocked). Parameters: {}
    -OperationResponse 226: ReturnCode: 32761 (User is blocked). Parameters: {}
    -JoinRoom failed (room maybe closed by now). Client stays on masterserver: OperationResponse 226: ReturnCode: 32761 (User is blocked). Parameters: {}. State: JoinedLobby
    -queueIncomingCommand() NC(0|7 r/u: 7/2 st/r#/rt:0/0/0) channel seq# r/u: 7/1
    -OnEvent: Event 226.
    Resending: NC(255|5 r/u: 82/0 st/r#/rt:87672/1/97672). times out after: 76 sent: 87672 now: 87750 rtt/var: 44/8 last recv: 124

    Full Log's ==> Connect ==> join the room ===> Leave the room ==> trying to join it again.

    http://pastebin.com/aCCesUYg


    .
  • Interesting.
    I tried to look up code that does "block" a user and didn't find it used in the current code-base for join. It might be in the older revision that was released.
    I will point a server developer to this and we'll find out what's going on.

    I did find a IsBlocked method. It checks if a user's ID is still in the room and blocks that user from re-joining.
    Maybe you are using only one userID? The same playername? If so, maybe your first join was successful before the Master Server knew the player list. Later on, the list was known and the single name you use is still in there?


    As you run the server, there is a chance you are ok with modifying and compiling the logic. If so, try finding "IsBlocked". In *lobby*.cs files, you should be able to comment out checks of IsBlocked in join operations. Compile and run.
  • Maybe you are using only one userID? The same playername?

    No , playername are different and userID too. I have said that i use your demo for the test without any change on it.
    As you run the server, there is a chance you are ok with modifying and compiling the logic. If so, try finding "IsBlocked". In *lobby*.cs files, you should be able to comment out checks of IsBlocked in join operations. Compile and run.

    I don't made any change server side and i don't have any knowledge on that. I just run it and have it because i have buy the licence at a good price the last year.
  • Well, i have formated my server, i have setup a new instal of photon server and now i don't have this bug anymore.

    Maybe a file from an older version like PhotonServer.config ... have made a trouble on it.

    Anyway thank for your help and interest.
  • I'm sorry you ran into this issue.
    Good you kept trying things and thanks for the update.