Navigation

    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Users
    1. Home
    2. MoonBarc
    • Continue chat with MoonBarc
    • Start new chat with MoonBarc
    • Flag Profile
    • block_user
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups
    Save
    Saving

    MoonBarc

    @MoonBarc

    0
    Reputation
    1
    Posts
    123
    Profile views
    0
    Followers
    1
    Following
    Joined Last Online

    MoonBarc Follow

    Posts made by MoonBarc

    • SessionId is undefined when leaving and joining again.

      Hi - i've been experimenting with Colyseus for a while, but when I have three tabs open, and close one, and then reopen it and rejoin, the other tabs are claiming that the SessionId is undefined. Is there something wrong with my code? I tried setting a property on the state called uuid which is basically the sessionid, but it still didn't work. Players is an empty array.

      Add player function (im using paperjs):

      function addPlayer(nickname,position,color,uid) {
          console.log("player added as",uid)
          var circle = new Path.Circle(position,20)
          circle.fillColor = color
          console.log(nickname + " has joined the server")
          players[uid] = {
              circle: circle,
              nickname: nickname
          }
          console.log(players[uid])
      } 
      

      State watching function thing:

          addlog("joined succesfully!")
          console.log(room)
          room.onMessage(function(msg) {
              addlog(msg)
          })
          room.state.players.onChange = function(plr,sesh) {
              // it exists and it's not us
              if(players[plr.uuid] && plr.uuid != room.sessionId && plr.uuid) {
                  // players[sesh].circle.position.x = plr.x
                  // players[sesh].circle.position.y = plr.y
                  var thepoint = new Point(plr.x,plr.y)
                  var tween = players[plr.uuid].circle.tweenTo(
                      { position: thepoint},
                      { duration: 100, start: false, easing: "linear"}
                  );
                  tween.start();
                  console.log("started tween for",players[plr.uuid].nickname)
              }else{
                  console.log("errorrorr")
                  console.log(players[plr.uuid], room.sessionId, sesh)
              }
          }
          room.state.players.onAdd = function(plr,session) {
              if(plr.uuid == undefined) {
                  alert("sessionid undefined")
              }
              console.log("user is being added!")
              if(plr.uuid != room.sessionId) {
                  addPlayer(plr.nickname,new Point(plr.x,plr.y),plr.color,plr.uuid)
                  console.log(plr,plr.uuid)
                  addlog(players[plr.uuid].nickname + " joined!")
              }
          }
          room.state.players.onRemove = function(plr,session) {
              console.log("user is being removed!")
              if(players[plr.uuid] && plr.uuid) {
                  players[plr.uuid].circle.remove()
                  addlog(players[plr.uuid].nickname + " left.")
                  players[plr.uuid] = undefined
              }
          }
      

      I'm really confused about why this is happening... any ideas?

      posted in Questions & Help
      MoonBarc