2013-02-15 3 views
0

Я пытаюсь использовать удаленный общий объект для отправки сообщений данных между клиентом и сервером с помощью метода sharedobject.send для приложения чата. Мне действительно трудно понять документацию. Код, который я пытался использовать, просто не работал.Как использовать удаленные общие объекты

Может ли кто-нибудь быть любезным, чтобы показать мне соответствующие вызовы API? И, внимательно осмотрите мой код и скажите мне, что именно я ошибаюсь?

Thank you.

Client-Side

import flash.net.NetConnection; 
import flash.events.NetStatusEvent; 
import flash.events.SyncEvent; 

var nc:NetConnection = new NetConnection(); 

nc.connect("rtmfp://fms/exampledomain"); 

nc.addEventListener(NetStatusEvent.NET_STATUS, netHandler); 

function netHandler(event:NetStatusEvent):void { 
    if (event.info.code == "NetConnection.Connect.Success") { 
     trace("Your Connected"); 

     //Creating the sharedobject 
     var my_so:SharedObject = SharedObject.getRemote("users", nc.uri, false); 

     my_so.connect(nc); 

     my_so.addEventListener(SyncEvent.SYNC, syncHandler); 

     my_so.setProperty("users"); 

     my_so.setDirty("users"); 

     function syncHandler(event:SyncEvent):void { 
      var changelist:Array = event.changeList; 
     } 

     my_so.send function sendMessage(str){ 

Серверное

application.onConnect(clientObj)() { 
    application.acceptConnection(clientObj) { 
     trace("connected up"); 
    } 

    var my_so = SharedObject.getRemote("users", false); 
    my_so.send("Hello user", "Its only a test"); 
} 

ответ

1

После редактирования ваш вопрос, это выглядит как некоторый код отсутствует в вашей стороне клиента образца.

Из того, что я вижу, для вашего примера вам не нужен код на стороне клиента для вашего примера. Вы можете вызвать метод send() непосредственно у клиента. Но чтобы проверить, как это работает, вам нужно подключить двух клиентов.

Для вашего NetConnection или вашего SharedObject убедитесь, что вы добавили слушателей событий, прежде чем вы вызываете метод connect().

Если вы хотите достичь простого обмена данными между клиентами, вам даже не нужно использовать метод send(), но простые свойства набора для вашего общего объекта. Но следует помнить, что следующее:

my_so.setProperty("users"); 

фактически удаление ключа users как это так же, как это:

my_so.setProperty("users", null); 

Наконец, вам нужно будет позвонить setDirty() в конкретных случаях, но не в этом. Посмотрите на this answer для более подробного примера того, как обмениваться данными с SharedObjects

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