[英]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
因此,一件事被確認為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.