0

有人知道是否可以使用 amf 远程处理从 flash 调用 asp.net mvc 操作?

如果是,如何?应该使用哪些技术以及如何将它们结合起来

在闪存方面,它会是这样的:

    //Connect the NetConnection object
    var netConnection: NetConnection = new NetConnection();
    netConnection.connect("http://localhost:59147/Home/Index");

   //Invoke a call
   log("invoke call TestMethod");
   var responder : Responder = new Responder( handleRemoteCallResult, handleRemoteCallFault);
   netConnection.call('TestMethod', responder, "Test");

我试过了,它触发了动作,但我在请求中找不到任何软件的“TestMethod”和“Test”

谢谢你

4

1 回答 1

2

我没有完整的答案,但这可以在一开始就帮助你。

您可以使用 FluorineFx,这是一个良好的开端,因为它实现了所有 AMF 东西,并且它具有 AMFWriter/Reader、AMFDeserializer 等,可以使用它们。

using System.Web.Mvc;
using FluorineFx.IO;

public class AMFFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType == "application/x-amf")
        {
            var stream = filterContext.HttpContext.Request.InputStream;

            var deserializer = new AMFDeserializer(stream);
            var message = deserializer.ReadAMFMessage();

            foreach (var body in message.Bodies) // not foreach, just the first one
            {
                filterContext.ActionParameters["method"] = body.Target;
                filterContext.ActionParameters["args"] = body.Content;
            }

            base.OnActionExecuting(filterContext);
        }
    }
}

[AMFFilter]
[HttpPost]
public ActionResult Index(string method, object[] args)
{
    return View();
}

这只是第一部分。返回二进制数据和内容可以由某种自定义 ActionResult 处理,但是您知道如何从这里AMF ActionResult for asp.net mvc 处理吗?

祝你好运。

于 2012-05-13T14:02:39.510 回答