【问题标题】:How to create an object from a DLL and call one of its methods with edge.js?如何从 DLL 创建对象并使用 edge.js 调用其方法之一?
【发布时间】:2015-06-02 12:58:28
【问题描述】:

我目前正在研究 edge.js 的可能性,因为它将极大地帮助我们完成当前的项目。我需要的是:我确实有一个 C# DLL(为 4.5.1 编译),我们在标准 C# 应用程序中使用它。这个 DLL 包含一个 TcpMessageListener 类,我通常会像这样实例化和使用它(例如,在 Windows 窗体中):

using MyAssembly.Tools;

namespace MyApplication
{
    public partial class Form1 : Form
    {
        TcpMessageListener myListener;

        public Form1()
        {
            myListener = new TcpMessageListener();
            myListener.Port = 22222;
            myListener.MessageReceived += new EventHandler<MessageEventArgs>(MessageReceived);
            myListener.Start();
        }

        public void MessageReceived(Object sender, MessageEventArgs e)
        {
        [...] // My message handling code here
        }
    }
}

上面的代码通常会在应用程序启动并开始侦听给定端口时创建一个侦听器(我可以使用 netstat 或类似工具快速检查)。

现在我想在运行我的节点代码时发生同样的事情,但我不知何故错过了重点,没有走上正轨。我应该补充一点,我对 node.js 完全陌生,只是潜入其中,请耐心等待。

根据我在 edge.js 网站上的所有示例中看到的情况,我是这样尝试的:

var http = require('http');
var port = process.env.port || 1337;

var listen = require('edge').func({
    assemblyFile: 'dll\\MyAssembly.dll',
    typeName: 'MyAssembly.Tools.TcpMessageListener',
    methodName: 'Start'
});

listen(null, true);

http.createServer(function (req, res) {
    console.log(req.url);
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

但是有两个问题:首先上面的代码显然没有创建监听器的实例,但是我不知道如何创建TcpMessageListener类的实例然后调用它的@ 987654325@方法。

根据给定的代码,您将如何使用 node.js 和 edge.js 创建一个侦听器并使其在后台侦听给定端口?我觉得在深入之前我只需要一个稳定的起点。

(最终目标是接收某些消息的后台侦听器。收到消息时,应该向 Web 用户呈现最后收到的消息内容,而不是“Hello World”。我想我可以弄清楚其他所有内容从那里开始。)

【问题讨论】:

    标签: javascript .net node.js dll edge.js


    【解决方案1】:

    试试这个:我遇到了类似的问题(并且仍然有一些),但是您可能需要将 .NET 对象存储在静态对象中,因为调用后边缘会丢失上下文: http://mcluck90.tumblr.com/post/89814519378/getting-started-with-edge-js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2015-07-17
      相关资源
      最近更新 更多