我正在尝试将所有用户存储在服务器端创建的sharedObject中,因此所有用户都会获得所有在线用户的同步列表。
我认为我在服务器端创建了正确的sharedObject,但我无法“找到”flash应用程序中的sharedObject。
Java Red5 Application类内部:
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;
}
Flash 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 :(得分:0)
我发现您可以使用以下行来执行as3脚本,而不是将数据存储在sharedObject中:
ServiceUtils.invokeOnAllConnections(room, "my_as3_function", userList);