Avatar billede xing Novice
23. januar 2007 - 12:04 Der er 9 kommentarer og
1 løsning

XMLSocket og kontakt

Denne kode virker når jeg køre det fra flash8, men hvis jeg køre det fra en hjemmeside så vil den ikke i kontakt med serveren.

Er det fordi min iss ikke er opsat korrekt, eller er der noget jeg mangler at kode?

myXML = new XMLSocket;
myXML.onConnect = handleConnect;
myXML.connect("http://www.yourServer.com", 12345);
function handleConnect(connectionStatus){
connectionStatus ? trace("Connected.") : trace("Connection failed.");
}
Avatar billede barklund Nybegynder
23. januar 2007 - 12:17 #1
Kører din HTML-fil og din server på samme domæne? Altså ligger din HTML-fil på http://foo.com/min.html og din server forbindes til på "foo.com"?

Hvis ikke, træder flash's sikkerhedsindstillingerne i kraft. Læs mere herom (og hvordan du åbner for det netop via XMLSocket) her:

http://www.adobe.com/devnet/flash/articles/fplayer_security_03.html

--
Morten Barklund
Avatar billede xing Novice
23. januar 2007 - 12:59 #2
Hej Morten

Jeg skrev bare serverens ip adresse, og ikke domænet

Så det vil altså sige at hvis jeg skifter

myXML.connect([ip adresse], 12345);

Ud med

myXML.connect("http://www.yourServer.com", 12345);

Så vil det virke?

Sidder på arb, så kan ikke teste
Avatar billede barklund Nybegynder
23. januar 2007 - 13:19 #3
Ikke noget http - det er jo ikke http, som du bruger.

Og det vil kun virke, hvis domænet er det samme, som domænet for HTML-siden. IP'en kan sagtens virke, hvis du også tilgår HTML-siden via samme IP.
Avatar billede xing Novice
23. januar 2007 - 23:46 #4
jeg kan ikke få det til at virke :-(
Avatar billede barklund Nybegynder
24. januar 2007 - 10:37 #5
Okay? Jeg ved jo ikke hvad du gør, så jeg kan ikke hjælpe dig mere :)
Avatar billede xing Novice
24. januar 2007 - 11:14 #6
Jeg har skrevet

myXML = new XMLSocket;
myXML.onConnect = handleConnect;
myXML.connect("www.jensandersen.net", 23);
function handleConnect(connectionStatus){
connectionStatus ? trace("Connected.") : trace("Connection failed.");
}

På serveren ligger følgene perl script

use IO::Socket;
use IO::Select;
$SIG{PIPE}='IGNORE';
$m=new IO::Socket::INET(Listen=>1,LocalPort=>23);
$O=new IO::Select($m);
$/="\0";
while(@S=$O->can_read){
foreach(@S){
if($_==$m){
$C=$m->accept;$O->add($C);
}else{
my $R=sysread($_, $i, 2048);
if($R==0){
$T=syswrite($_, '', 2048);
if($T==undef){
$O->remove($_);
}
}else{
foreach $C($O->handles){
$T=syswrite($C, $i,2048);
}
}
}
}
}

Porten er åben, og det virker når jeg køre det igennem flash8.

Ellers kan du se at det ikke virker her

www.jensandersen.net/chat.asp
Avatar billede barklund Nybegynder
24. januar 2007 - 12:34 #7
Du må ikke forbinde på en port under port 1024 uden et særligt cross-domain-policy-kald først - så skift til fx port 15000 og det burde virke.
Avatar billede xing Novice
26. januar 2007 - 16:08 #8
Jeg fik det til at virke da jeg brugte en port højer end 1024..

Klikker du svar?
Avatar billede barklund Nybegynder
26. januar 2007 - 16:46 #9
Kan du tro :)
Avatar billede barklund Nybegynder
26. januar 2007 - 19:07 #10
Tark for points :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester