Удаленный общий объект не определен - Red5 - PullRequest
0 голосов
/ 20 сентября 2011

Не могу найти какое-либо решение для этого.Я пытаюсь сохранить некоторые данные на удаленном общем объекте и получить его.На данный момент я работаю локально.Во всяком случае, я прочитал, вероятно, все сообщения в Интернете об этом и до сих пор не могу понять, где моя проблема.Мне удалось сохранить аргументы на rso, но когда я попытался получить эти значения, я только получил неопределенный.Вот мой код для версии, когда я работаю только на стороне клиента, а на стороне сервера просто смотрю, когда клиент подключается к общим объектам или изменяет значение.

protected function application1_creationCompleteHandler(event:FlexEvent):void {
                var room_id:Number = vars("room");
                connection = new NetConnection();
                connection.connect("rtmp://127.0.0.1/video/" + room_id);
                connection.addEventListener(NetStatusEvent.NET_STATUS, onConnected);
                connection.client = this;
            }

private function onConnected(event:NetStatusEvent) : void {
                if(event.info.code == "NetConnection.Connect.Success") {

                    so = SharedObject.getRemote("video", connection.uri, true);
                    so.addEventListener(SyncEvent.SYNC, onSync);
                    so.connect(connection);
                // if i try to trace so in there it will be undefined


                } else {
                    Alert.show("Unsuccessful Connection", "Information");
                }

И, наконец:

private function onSync(event:SyncEvent):void {

                for(var i:Object in event.changeList) {
                    var changeObj:Object = event.changeList[i];

                    switch(changeObj.code) {
                        case "success":
                            if(so.data.cameras) {
                                Alert.show(this.so.data.cameras.toString(), "I changed it");
                            } else {
                                Alert.show("I changed", "Information");                             
                            }
                            break;
                        case "change":
                            if(so.data.cameras)
                                Alert.show(so.data.cameras.toString(), "First");
                            else if (this.so.data.cameras) {
                                Alert.show(this.so.data.cameras.toString(), "Second");
                            } else {
                                Alert.show("Can't found changed value", "Error");
                            }
                            break;
                    }
                }
            }

И вот, я всегда получаю неопределенное значение cameras, если только я не клиент, который меняет значение, но все остальные получают неопределенное значение.Так что я не могу понять, все слушатели заметили изменения, на коде серверной части я вижу, что у меня есть изменения, и я даже открыл постоянный общий объектный файл red5, и я вижу, что есть значение, но я просто не могу получить его.У кого-нибудь есть решение?Я был бы очень признателен.

Обновлено: Ответ здесь: rso между flex и red5.Я могу создать, но не могу прочитать

...