如何在客户端和服务器之间发送 Haxe 中的对象列表?
How to send a list of objects in Haxe between client and server?
我正在尝试用 Haxe (OpenFL) 编写在线留言板。网上有很多 server/client 示例。但是我是这个领域的新手,我不了解其中的任何一个。在服务器和客户端之间发送对象列表的最简单方法是什么?你们能举个例子吗?
编辑:我仍然不确定用户的问题是否真的是关于发送 "a list of objects";参见 问题...
最简单的方法是使用 Haxe Serialization, either with Haxe Remoting 或在 TCP/UDP 之上使用您自己的协议。协议的选择取决于您是否已经构建了一些东西,以及您将调用函数还是只是 getting/posting 数据。
无论哪种情况,haxe.Serializer/Unserializer
都会为您提供一种格式,可以用最少的代码将大部分(如果不是全部)Haxe 对象从客户端传输到服务器。
请参阅以下有关如何使用序列化 API 的最小示例(来自手册)。 format 是基于字符串并指定的。
import haxe.Serializer;
import haxe.Unserializer;
class Main {
static function main() {
var serializer = new Serializer();
serializer.serialize("foo");
serializer.serialize(12);
var s = serializer.toString();
trace(s); // y3:fooi12
var unserializer = new Unserializer(s);
trace(unserializer.unserialize()); // foo
trace(unserializer.unserialize()); // 12
}
}
最后,您还可以使用其他序列化格式,例如 JSON(使用 haxe.Json.stringify/parse
)或 XML,但如果您处理枚举,它们就不会那么方便, class 这些格式不完全支持的实例或其他数据。
你可以使用 JSON
您可以将其放入您的 openFL 项目(客户端):
var myData = [1,2,3,4,5];
var http = new haxe.Http("server.php");
http.addParameter("myData", haxe.Json.stringify(myData));
http.onData = function(resultData) {
trace('the data is send to server, this is the response:' + resultData);
}
http.request(true);
如果您有一个 server.php 文件,您可以像这样访问数据:
$myData = json_decode($_POST["myData"]);
如果服务器returns Json数据需要在客户端读取,那么在Haxe中需要做haxe.Json.parse(resultData)
;
我正在尝试用 Haxe (OpenFL) 编写在线留言板。网上有很多 server/client 示例。但是我是这个领域的新手,我不了解其中的任何一个。在服务器和客户端之间发送对象列表的最简单方法是什么?你们能举个例子吗?
编辑:我仍然不确定用户的问题是否真的是关于发送 "a list of objects";参见
最简单的方法是使用 Haxe Serialization, either with Haxe Remoting 或在 TCP/UDP 之上使用您自己的协议。协议的选择取决于您是否已经构建了一些东西,以及您将调用函数还是只是 getting/posting 数据。
无论哪种情况,haxe.Serializer/Unserializer
都会为您提供一种格式,可以用最少的代码将大部分(如果不是全部)Haxe 对象从客户端传输到服务器。
请参阅以下有关如何使用序列化 API 的最小示例(来自手册)。 format 是基于字符串并指定的。
import haxe.Serializer;
import haxe.Unserializer;
class Main {
static function main() {
var serializer = new Serializer();
serializer.serialize("foo");
serializer.serialize(12);
var s = serializer.toString();
trace(s); // y3:fooi12
var unserializer = new Unserializer(s);
trace(unserializer.unserialize()); // foo
trace(unserializer.unserialize()); // 12
}
}
最后,您还可以使用其他序列化格式,例如 JSON(使用 haxe.Json.stringify/parse
)或 XML,但如果您处理枚举,它们就不会那么方便, class 这些格式不完全支持的实例或其他数据。
你可以使用 JSON
您可以将其放入您的 openFL 项目(客户端):
var myData = [1,2,3,4,5];
var http = new haxe.Http("server.php");
http.addParameter("myData", haxe.Json.stringify(myData));
http.onData = function(resultData) {
trace('the data is send to server, this is the response:' + resultData);
}
http.request(true);
如果您有一个 server.php 文件,您可以像这样访问数据:
$myData = json_decode($_POST["myData"]);
如果服务器returns Json数据需要在客户端读取,那么在Haxe中需要做haxe.Json.parse(resultData)
;