PHPソケットで動作するかなり単純なフラッシュゲームを取得しようとしています。現時点では、ユーザーが互いにチャットできるソケットでテストを実行しています。これは、IDE からのみ、私の個人用マシンで実行されます。SWF や .html を実行しようとしても、うまくいきません。PhP 対 C# 対 C++ 対 HTML などの境界線上にいる人がいることは知っていますが、私が使用しているホスティングはこれをサポートするので、私は本当に php を使い続けたいと思っています。ソケットサーバー。
だから私の問題は、私はそれがほとんど働いているということです。Flash CS5 (Ctrl+Enter) でテストすると、トレースとすべてが実行され、接続できないときに停止します。ただし、SWF または HTML から実行しようとすると、初期化すらされません。以下のコードは、これをもう少し明確にします
import flash.net.*;
import fl.controls.*;
import flash.events.MouseEvent;
import flash.events.DataEvent;
import flash.events.SecurityErrorEvent;
var mySocket = new XMLSocket();
pushMsg.addEventListener(MouseEvent.CLICK, realsedButton);
//mySocket.connect("192.124.5.2",9999);
mySocket.addEventListener(Event.CONNECT, xmlsocket);
mySocket.addEventListener(Event.CLOSE, xmlsocket);
mySocket.addEventListener(IOErrorEvent.IO_ERROR, xmlsocket);
mySocket.addEventListener(DataEvent.DATA, dataHandler);
mySocket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityHandler);
msgArea.htmlText = "Started!";
connectToServer();
function connectToServer()
{
msgArea.htmlText = "Inside connect To Server";
mySocket.connect("localhost",9999);
}
function securityHandler(evt: SecurityErrorEvent)
{
msgArea.htmlText = "SecurityError";
}
function dataHandler(evt:DataEvent)
{
trace("Inside dataHandler")
var xml = XML(evt.target.data);
msgArea.htmlText += xml;
}
function xmlsocket(Event)
{
msgArea.htmlText += "inside xmlSocket";
switch(Event.type)
{
case 'ioError':
msgArea.htmlText += "Inside dataHandler";
msgArea.htmlText += "<b>Server connection failed!</b>";
break;
case 'connect':
msgArea.htmlText +="Inside Connect";
msgArea.htmlText += "<b>Server connection establed!</b>";
break;
case 'close':
msgArea.htmlText +="Inside Close";
msgArea.htmlText += "<b>Server connection lost</b>";
break;
}
}
function msgGO()
{
msgArea.htmlText +="Inside msgGO";
if (inputMsg.htmlText != "")
{
msgArea.htmlText +="Inside msgGo2";
mySocket.send(inputMsg.htmlText+"\n");
inputMsg.htmlText = "";
}
}
function realsedButton(evt:MouseEvent)
{
msgArea.htmlText +="Inside ReleasedButton";
msgGO();
}
したがって、IDE からこれを実行すると、次のように出力されます。 Inside connect To Server inside xmlSocket Inside dataHandler Server connection failed!
開始をスキップしていることを除けば、これは良いことです。(理由は不明)
これを SWF または HTML Inside connect To Server から実行すると、
それだけです。メッセージを追加して、コードがいつジャンプするかを正確に追跡しました。パブリッシュ設定で、[ネットワーク ファイルを使用] に設定しています。また、[ローカル ファイルを使用] も試しました。
ネットワーク ファイルを使用すると、SWF は Inside connect To Server を出力します。
ローカル ファイルを使用すると、何も出力されません。
誰かがこれを説明したり、私を助けてくれたりしたら、とても感謝しています。
さて、私たちはいくつかの小さな進歩を遂げました. マシン上で実行されるようになりました。内部でサーバーに接続すると、約 10 ~ 15 秒後にセキュリティ エラーが表示されます。
これを 9999 で実行していますが、ポート 843 とセキュリティ エラーに問題があると聞きました。このエラーをデバッグする方法はありますか? PhP ソケットを使用して実際のサーバーから実行しようとしている場合にのみ取得します。
個人のマシンで swf を実行しても、Started! に合格しません。どれだけ待っても内部でサーバーに接続します