Пытаюсь сделать простой чат между 2-мя swf файлами, находящимися на разных компьютерах (один у меня, другой на vds сервере). Взаимодействие организую по средствам localConnection. Делаю всё согласно документации адоб (как с предсказуемым, так и с непредсказуемым доменом, и в итоге сообщения никак не хотят доходить. При этом если на одном компе 2 swf файла запускать, то всё работает...
Отправитель:
Код
import flash.net.LocalConnection;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.events.Event;
var LC:LocalConnection = new LocalConnection ();
LC.allowDomain('*' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
LC.allowInsecureDomain('*' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
btnOk.addEventListener(MouseEvent.CLICK, funOk);
function funOk (e:MouseEvent) {
if (txtName.text != '' && txtPassword.text != '' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> {
LC.send('93.95.97.177:MyConnect','funLogin',txtName.text,txtPassword.text); // ИП вдс сервера
// Также такие варианты были...
//LC.send('93.95.97.177:_MyConnect','funLogin',txtName.text,txtPassword.text);
//LC.send('MyConnect','funLogin',txtName.text,txtPassword.text);
//LC.send('_MyConnect','funLogin',txtName.text,txtPassword.text);
}
}
LC.addEventListener(StatusEvent.STATUS, funStatus);
function funStatus (e) {
trace (e);// выводит [StatusEvent type="status" bubbles=false cancelable=false eventPhase=2 code=null level="error"]
}
LC.addEventListener(SecurityErrorEvent.SECURITY_ERROR,funSE);
function funSE (e) {
trace ('сработало funSE' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
}
Приемник:
Код
import flash.net.LocalConnection;
import flash.events.Event;
var LC:LocalConnection = new LocalConnection ();
LC.client = this;
//LC.allowDomain ('76.92.198.52' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ; // мой ИП
LC.allowDomain('*' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
LC.allowInsecureDomain ('*' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
LC.client = this;
LC.connect ('MyConnect' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
//LC.connect ('_MyConnect' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ; // для непредсказуемого домена
function funLogin(Name, Pass) {
txtOutput.appendText (Name + '\n' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
txtOutput.appendText (Pass + '\n' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" /> ;
txtOutput.appendText (LC.domain + '\n' <img rel="usm" src="/SML/wink.gif" border="0" align="absmiddle" alt=";)" />
}
В сетевых технологиях я не силен, и предполагаю, что может что-то с портами надо делать (т.к. на обоих машинах Код
LC.domain //localhost выдает
), либо дело в том, что я ИП адрес пишу.
Никаких дополнительных ПО специально не ставил (информация на всякий случай).
И если можно - поясните на пальцах по какому принципу работает localConnection с непредсказуемым домином. Я предполагаю, что если в LC.send не пишется адрес получателя, то должна быть лавинообразная рассылка до всех компьютеров, и на одном из них запущенное swf приложение открывает что-то на подобии порта и по connectionName понимает, что это ему пришло. Или бред полный написал
Кучу формуов, статей и т.д. перечитал и так нигде и не нашел ответа и вся надежда на знающий народ тут