如何从C#MVC中调用NodeJ代码

本文关键字:调用 NodeJ 代码 C#MVC | 更新日期: 2023-09-27 18:11:33

我在控制台中运行的nodeJ中使用了mqtt代码
但是我想在c#MVC中使用这个nodeJs Mqtt代码
我怎样才能做到这一点?

我的NodeJs代码如下,

Server.js

var mqtt    = require('mqtt');    
var sys = require("sys");   
var stdin = process.openStdin();  
var client  = mqtt.connect('http://broker.mqttdashboard.com');
client.on('connect', function () {  
    console.log("Chat Application");  
    stdin.addListener("data", function(d) {  
        client.publish('presence',d.toString());  
    }); 
    client.subscribe('msg');  
    client.on('message', function (topic, message) {   
        console.log('User2:',message.toString());  
    });  
});

Client.js

var mqtt    = require('mqtt');  
var client  = mqtt.connect('http://broker.mqttdashboard.com');  
var sys = require("sys");  
var stdin = process.openStdin();  
client.on('connect', function () {  
    console.log("Chat Application");  
    client.subscribe('presence');  
}); 
client.on('message', function (topic, message) {  
    console.log('User1:',message.toString());  
});  
stdin.addListener("data", function(d) {  
    client.publish('msg',d.toString());  
});  

请给出一些在c#MVC中使用nodejs的示例代码

如何从C#MVC中调用NodeJ代码

我有一个解决方案,但我想澄清一下,这段代码使用NodeJs,还是本机c#代码?

<script>
       var client = new Messaging.Client("broker.mqttdashboard.com", 8000, "myclientid_" + parseInt(Math.random() * 100, 10));
        client.onConnectionLost = function (responseObject) {
            alert("connection lost: " + responseObject.errorMessage);
        };
        client.onMessageArrived = function (message) {
            $('ol').append('<li> ' + $("#TUserName").val() + '  : ' + message.payloadString + '</li><br/>');
        };
        var options = {
            timeout: 3,
            onSuccess: function () {  
            client.subscribe("MQTT/Message", { qos: 2 });
            alert("Connected");
            },
            onFailure: function (message) {
                alert("Connection failed: " + message.errorMessage);
            }
        };
        var publish = function (payload, topic, qos, retained) {
            var message = new Messaging.Message(payload);
            message.destinationName = topic;
            message.qos = qos;
            message.retained = retained;
            client.send(message);
        }

        $(document).ready(function () {
            client.connect(options);
            $("#btn").click(function () {  
                     publish($('#test').val(),"MQTT/Message", 2, true);                                                                                                    
                    $("ol").append("<li> You : " + $("#test").val() + "</li>");
             });
</Script>

效果很好。但我想知道这个代码是否使用NodeJ?请告诉我。

您从未在客户端应用程序中直接使用node。但是,可以通过向node应用程序中指定的连接端点发出AJAXXHR请求来访问这些功能。

示例

要访问javascript应用程序中的MongoDb数据库,您可以在节点应用程序中指定一些url或端点,从而进一步调用回调函数。这些回调函数包含用于连接到mongo数据库的代码。

从客户端,您对指定的url以及所需的数据发出AJAX请求。然后回调执行CRUD操作并返回相应的结果。

p.S.您在<script>标记内的C#文件中的答案中所写的内容是纯javascript。没有什么比Node.Js更好的了。