远程共享对象未定义 - Red5

时间:2011-09-20 08:37:45

标签: flex red5 shared-objects

无法找到任何解决方案。我试图将一些数据存储在远程共享对象上并检索它。目前我在当地工作。无论如何,我可能阅读了互联网上关于这一点的所有帖子,但仍然无法理解我的问题在哪里。我设法在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 between flex and red5. I can create but cant read

0 个答案:

没有答案