我可以通过接收(播放)NetStream对象的基础NetConnection发送消息吗?
-
30-09-2019 - |
题
这是我的问题:我有一个连接到服务器的NetConnection对象。最重要的是,我创建了一个NetStream对象,并开始从服务器播放文件。到目前为止经典。
我现在需要的是能够在播放时间的各个时刻将一些(简短的)消息发送回服务器,但显然, 使用现有的TCP连接.
根据我可以阅读的内容 文档, ,基础NetConnection对象支持“客户端和服务器之间的双向连接”,显然TCP层支持它。我非常了解TCP网络概念,但绝对不是Flash如何实现它们。
它是否正确?可以使用NetConnection(或其他一些机制)完成吗?
我将如何做到这一点(一个示例很棒,但是对过程的概念描述也将起作用)。如何通过NetConnection如何确切地将消息从客户端发送到服务器?
活动的Netstream对象是否会以任何方式干扰这种操作?
谢谢。
解决方案
是的你可以。
我认为,我们正在谈论与Flash Media服务器的连接。
使用NetConnection.call()方法,该方法远程执行服务器端脚本方法。
public function call(command:String, responder:Responder, ... arguments):void
您必须将此服务器端方法定义为连接客户端类的原型
例如
Client.prototype.MyMethod = function(arg)
{
trace("Server received " + arg + "\n");
}
然后调用此方法应该看起来像:
var nc:NetConnection;
//initialize net connection and connect
nc.call("MyMethod", null, "Hello, server");
如果您需要获得一些结果 - 使用响应者类实例而不是null。
如果您需要服务器来调用客户端的方法,请在客户端对象上使用服务器端“调用”功能。在这种情况下,您必须在客户端定义某些对象,Wich具有回调方法:
客户端:
var obj = new Object();
obj.MyCallback = function(arg:Object)
{
trace ("Received message from server: " + arg as String);
}
nc.client = obj;
服务器端:
clientObject.call("MyCallback", null, "Hello, client");
问候,大卫。
不隶属于 StackOverflow