Broadcast message to all in a room.

Post here your questions about Actionscript and Java server side extensions development.

Moderators: Lapo, Bax

lordali
Posts: 41
Joined: 25 Mar 2008, 08:32

Broadcast message to all in a room.

Postby lordali » 12 Sep 2009, 15:32

Hi,

I want to broadcast all users in a room that a userjoined or left the room. I tried but its not working. Am I missing anything?. Error says

Code: Select all

Error in extension [ RoomExt.as ]: TypeError: Cannot find function getChannel. (RoomExt.as#526) Internal: -1049 -- Line number:  (MainLib line: 526)


Below is the whole code.

Code: Select all

function handleInternalEvent(e)
{
   if(e.name == "userExit" || e.name == "userJoin"  || e.name == "userLost")
   {         
      var userObj = e.user;
      var resp = new Object();
      var room = _server.getCurrentRoom()
trace("Extension is running in room: " + room.getName())
trace("Users in this room: " + room.getUserCount())

      if (e.name == "userJoin")
      {
         resp.cmd = "userJoin";
         resp.id = userObj.getUserId();
      }
      else if(e.name == "userExit" || e.name == "userLost")
      {
         resp.cmd = "userLost";
      }

      resp.name = userObj.getName();
      
      _server.sendResponse(resp, -1, null, room.getUserList()) ;
   }
}
Last edited by lordali on 12 Sep 2009, 22:26, edited 1 time in total.
lordali
Posts: 41
Joined: 25 Mar 2008, 08:32

Postby lordali » 12 Sep 2009, 20:44

Please anyone help here. Because I can not broadcast user join to any one in the lobby.
lordali
Posts: 41
Joined: 25 Mar 2008, 08:32

Postby lordali » 12 Sep 2009, 22:23

After spending lots of time finally found the solution. Below is the code.
Is this the better code or you can share better solution than mine.

Code: Select all

function handleInternalEvent(e)
{      
   //get the id of the current room
   if (currentRoomId == undefined)
      currentRoomId = e["room"].getId();
      
   //get current room object
   var room = zone.getRoom(currentRoomId);
   var uList = room.getAllUsers();

   //Get user object
   u = e["user"];
      
   if (e.name == "userJoin")
   {
      var resp = new Object();
      resp.cmd = "userJoin";


      _server.sendResponse(resp, currentRoomId, null, uList)
   }
   else if (e.name == "userExit" || e.name == "userLost")
   {   
      var resp = new Object();
      resp.cmd = "userLost";

      
      _server.sendResponse(resp, currentRoomId, null, uList)
   }
}

Return to “Server Side Extension Development”

Who is online

Users browsing this forum: No registered users and 62 guests