簡體   English   中英

如何將數據從C#推送到ZeroMQ並從Node.JS提取,反之亦然?

[英]How to Push data from C# to ZeroMQ and Pull from Node.JS or vice-versa?

場景

我正在嘗試通過ZeroMQ將數據(例如String類型)從C#сonsole應用程序發送到Node.JS服務器。

信息:

將clrzmq分別用於C#和ZeroMQ庫,分別用於C#和Node.JS

我能夠進行推拉從Node.js的,也 - 從C#。

因此,一件事被確認為ZeroMQ-智能傳輸層已安裝在計算機上(Windows 7 64位)

問題

我無法將數據從C#控制台應用程序推送到Node.JS應用程序(甚至嘗試將其反之),兩者都在同一台計算機上,並且在同一地址上,即tcp://127.0.0.1:2222

Node.js代碼:

var zmq = require('zeromq.node');
var pull_socket = zmq.socket('pull');    
pull_socket.connect('tcp://127.0.0.1:2222');    
pull_socket.on('message', function (data) {
    console.log('received data:\n');
    console.log(data);
});

C#代碼:

namespace DataServiceEngine
{
    class Program
    {
        static void Main(string[] args)
        {
            //clsApp App = new clsApp();
            //App.appId = "001";
            //App.name = "Back Office";

            //Console.WriteLine("appId :" + App.appId + "\n");
            //Console.WriteLine("name:" + App.name + "\n");

            try
            {
                // ZMQ Context and client socket
                using (var context = new Context(1))
                {
                    using (Socket client = context.Socket(SocketType.PUSH))
                    {
                        client.Connect("tcp://127.0.0.1:2222");

                        string request = "Hello";
                        for (int requestNum = 0; requestNum < 10; requestNum++)
                        {
                            Console.WriteLine("Sending request {0}...", requestNum);
                            client.Send(request, Encoding.Unicode);

                            string reply = client.Recv(Encoding.Unicode);
                            Console.WriteLine("Received reply {0}: {1}", requestNum, reply);
                        }
                    }
                }
            }
            catch (ZMQ.Exception exp)
            {
                Console.WriteLine(exp.Message);
            }
        }
    }
}

問題 :誰能告訴我原因是什么或我在哪里做錯了?

我遇到了同樣的問題(但是我發布了一個通信Node.JS-> Node.JS)。 為了解決這個問題,我曾經做過sendersocket.connect("tcp://"+host+":"+port); 在發送方和receiversocket.bindSync("tcp://*:"+port);receiversocket.bindSync("tcp://*:"+port); 在接收器處。

希望這能解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM