我在Haxe工作,需要连接到SmartFoxServer。我安装了SFS Pro(localhost:8080打开并显示介绍页面正常)。我还没有修改配置文件。
客户端,我尝试运行SmartFoxClient.connect([my ip], 9339)
。在connect
行之后,没有任何内容运行,并且永远不会调用侦听器SFSEvent.onConnection
。
import it.gotoandplay.smartfoxserver.SmartFoxClient;
import it.gotoandplay.smartfoxserver.SFSEvent;
class New {
public static function main() {
var sfs = new SmartFoxClient(true);
haxe.Log.trace(sfs.properties);
sfs.addEventListener(SFSEvent.onConnection, function(e:SFSEvent) {
haxe.Log.trace("Listener called: " + sfs.getConnectionMode);
if(e.params.success) {
haxe.Log.trace("Success");
}
else {
haxe.Log.trace("Success");
}
});
try{
haxe.Log.trace("Connecting Started..");
sfs.connect("192.168.1.229", 9339); //my ip is 192.168.1.229 on the internal network. Tried with "127.0.0.1" and got the same result
haxe.Log.trace("Connecting...");
}
catch(e:String) {
haxe.Log.trace("Failed");
}
haxe.Log.trace("Connection Sent..................");
}
}
我使用haxe -main New -swf whatever.swf -swf-lib SmartFoxClient.swf -swf-lib SFSEvent.swf
进行编译。编译运行正常,但跟踪的输出只是`sfs.properties(为空)和"正在连接..."
我尝试在Flash中使用类似的代码(功能相同)并且连接正常。
我的问题是,如果有人在没有将整个SFS代码移植到Haxe(我用as3hx尝试失败)的情况下完成了这项工作,他们的做法有何不同?
答案 0 :(得分:0)
在我的情况下,问题是flash没有使用套接字的权限。我把它改成了一个可信任的文件,现在工作正常。