2009-11-21 7 views
0

Я пытаюсь сохранить всех пользователей внутри sharedObject, созданных на стороне сервера, поэтому все пользователи получают синхронизированный список всех онлайн-пользователей.red5 server-side sharedObject

Я думаю, что создаю sharedObject правильно на стороне сервера, но я не могу найти «sharedObject» во флэш-приложении.

Внутри класса Java Red5 Применение:

ISharedObject userList; 

public boolean connect(IConnection conn, IScope scope, Object[] params) 
{  
    if(userList == null) 
    { 
     createSharedObject(scope, "userList", false); 
     userList = getSharedObject(scope, "userList"); 
    } 

    userList.setAttribute("user", "some name"); 

    return true; 
} 

Флэш SharedObject выглядит следующим образом:

private var _userSO:SharedObject; 

private function initUserSO() // I call this function when I get a netConnection 
{ 
    _userSO = SharedObject.getRemote("userList", this.uri, false); 
    _userSO.addEventListener(SyncEvent.SYNC,syncUsers); 
    _userSO.connect(this); // this = netconnection 
} 

private function syncUsers(e:SyncEvent):void 
{ 
    MonsterDebugger.trace('userManager',_userSO.data); 
} 

Но _userSO, кажется, не найти SharedObject на сервере.

ответ

0

я узнал, что вы можете использовать строку ниже, чтобы выполнить as3 скрипт вместо того, чтобы хранить данные внутри SharedObject:

ServiceUtils.invokeOnAllConnections(room, "my_as3_function", userList); 
+0

Это, конечно, зависит от ситуации, но в большинстве случаев С.О. подход более эффективный, чем вызов метода для каждого соединения. –

Смежные вопросы