如何将数据从 C# 推送到 ZeroMQ 并从 Node.JS 拉取,反之亦然?

2024-04-25

Scenario:

我正在尝试发送数据(例如String类型)通过 ZeroMQ 从 C# 控制台应用程序到 Node.JS 服务器。

信息:

分别对 C# 使用 clrzmq,对 C# 和 Node.JS 使用 ZeroMQ 库

我有能力执行推拉 https://github.com/JustinTulloss/zeromq.node/blob/master/examples/push_pull.js也来自 Node.JSpush https://github.com/zeromq/clrzmq#example-client - pull https://github.com/zeromq/clrzmq#example-server来自 C#。

那么,有一件事可以确定,那就是ZeroMQ - 智能传输层 http://www.zeromq.org/已安装在计算机上(Windows 7 64 位)

Issue:

我无法将数据从 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# code:

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);
            }
        }
    }
}

Question: 谁能告诉我可能是什么原因或者我哪里做错了?


我有同样的问题(但我发出了通信 Node.JS -> Node.JS)。为了解决我以前做的问题sendersocket.connect("tcp://"+host+":"+port);在发件人处和receiversocket.bindSync("tcp://*:"+port);在接收器处。

希望这能解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将数据从 C# 推送到 ZeroMQ 并从 Node.JS 拉取,反之亦然? 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 下载中带有文件名的 NodeJS sendFile

    我尝试使用以下代码将文件发送给客户端 router get get myfile function req res next res sendFile other file name dat 它工作正常 但当用户从以下网址下载此文件时我需要
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 如何在超级测试中模拟中间件?

    我想测试中间件是否在app js叫做 虽然我嘲笑该模块work js 它仍然运行原始代码 app js const work require work const express require require const app expr
  • Nodejs Express中间件函数返回值

    我正在使用 NodeJS 和 Express 我有以下路线 中间件功能是Mobile 如果我不使用 return next 在 isMobile 函数中 应用程序会卡住 因为 NodeJS 不会移至下一个函数 但我需要 isMobile 函
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个

随机推荐

  • ggplot2堆叠条形图数据标签向后

    我想在 ggplot2 中创建一个堆积条形图 其中数据标签位于与其相关的填充区域的中心 我尝试过的代码的标签顺序与应有的顺序相反 这是代码示例 data rep lt data frame Task Number c 5 004 5 004
  • Eclipse C++ 打印漂亮吗?

    从 Eclipse 打印 C 源代码时得到的输出相当难看 是否有方法 插件可以漂亮地打印 C 源代码 例如与a2ps 这可能是对C源代码使用另一个过滤器 我也用enscript为了这 这是我经常使用的别名 alias cpp2ps ensc
  • 诊断 R 包构建错误:pdfLatex 不可用

    我正在尝试构建一个包R 我制作了骨架 并运行了命令R CMD check package1 我收到一个错误描述here https stackoverflow com questions 10819959 diagnosing r pack
  • 迁移到 Jboss 7.0 AS 后 Firefox 和 IE 中的 ViewExpiredException

    我们的 JSF 2 0 Richfaces 4 0 应用程序在 Jboss 6 0 上运行得非常好 我们正在尝试将其迁移到 Jboss 7 0 AS 对于我们点击页面上的任何链接 我们在 Firefox 和 IE 中遇到 ViewExpir
  • 如何使用 boost::spirit::qi 解析行尾?

    不应该是一个简单的eol http www boost org doc libs 1 42 0 libs spirit doc html spirit qi quick reference qi parsers auxiliary html
  • ASP NET Core 2 找不到包“Projectname.Model”的编译库位置

    在我的解决方案中 我有两个项目 其中之一是web项目 另一个是Model项目 您可以在下面看到我的解决方案结构 现在 当我运行应用程序时 出现以下错误 InvalidOperationException 找不到包 ContosoUniver
  • 如何在 GWT 中取消转义字符串

    我使用了 SafeHtmlUtils htmlEscape text 并且我想使用相反的功能 你能告诉我 gwt 中是否有像 unescapeHtml 这样的函数 如果 并且仅当 您可以相信文本不包含恶意内容 您可以使用 import co
  • 客户端验证后 RegisterOnSubmitStatement

    我需要在提交 Web 表单时但在客户端验证发生之后在流程中插入一些 Javascript RegisterOnSubmitStatement 似乎将 JavaScript 放在验证之前 有人知道如何让它渲染后吗 找到解决方案 在网络控件中
  • declarative_authorization 和命名空间

    您知道 declarative authorization 是否可以控制对命名空间资源的访问吗 我尝试过类似的东西 has permission on admin users to gt index show new create edit
  • R和matlab中的qr函数

    我有一个关于将 matlab 函数转换为 R 的问题 我希望有人能提供帮助 matlab 和 R 中使用的标准 QR 分解称为 qr 据我了解 用两种语言执行 qr 分解的标准方法是 Matlab Q R qr A 满足QR A R z l
  • PDOStatement 到 JSON [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我将如何转换PDOStatement到 JSON 我需要 jsonifyPDO FETCH OBJ json encode没有能力 j
  • 如何创建 Delphi Android 应用程序 APK 来包含文件

    如何将文件和 或包含 Android 应用程序 APK 文件的文件的文件夹包含在内 Delphi 运行过程会擦除 Assets 目录的内容 并且我放置在那里的文件 文件夹不包含在 APK 包中 我假设您必须手动将 System Startu
  • 如何在 Python 中使用 tkinter 选择目录并存储位置

    我正在创建一个带有浏览按钮的 GUI 我只想返回路径 我一直在寻找使用如下代码的解决方案 Tkinter Button subframe text Browse command self loadtemplate width 10 pack
  • 使用candlestick_ohlc显示csv

    我尝试用熊猫做第一步 经过几个成功的步骤后 我坚持执行以下任务 使用 OHLC 条显示数据 我从 Google Finance 下载了 Apple 股票的数据并将其存储到 csv 文件中 经过大量搜索 我编写了以下代码 import pan
  • 与 Socket.io 保持连接

    我正在尝试使用 asterisk websocket 连接socket io 客户端 https github com socketio socket io client socket io connect url transports w
  • 根据laravel中选定的省份获取城市列表

    如何获取基于所选省份的城市列表 我的控制器 public function index province RajaOngkir Provinsi gt all city RajaOngkir kota gt all return view
  • Intl.DateTimeFormat 给出 1847 年或以下年份的奇怪结果

    为什么我选择1848以下的年份 这种格式的结果是May 10 我有一种感觉 这可能与时区有关 如果是这样 我怎样才能避免这种情况 因为我将从 ISO 日期字符串 没有时间 创建一个日期对象 如下所示 YYYY MM DD 在 Chrome
  • 是否可以以编程方式指定

    有什么方法可以在活动 l 中以编程方式指定 in 的意思吗 因为在 Google Play 中 当用户尝试安装该应用程序时 它表示 Android 应用程序与您的 Kindle Fire 平板电脑设备不兼容 在我的应用程序中 我们使用的是地
  • 将 AutoFac 设置为默认使用 PropertiesAutowired(true) 吗?

    有没有办法我可以将 AutoFac 设置为使用 PropertiesAutowired true 作为所有注册类型的默认值 即我不想一直使用 Properties Autowired true var builder new Contain
  • 如何将数据从 C# 推送到 ZeroMQ 并从 Node.JS 拉取,反之亦然?

    Scenario 我正在尝试发送数据 例如String类型 通过 ZeroMQ 从 C 控制台应用程序到 Node JS 服务器 信息 分别对 C 使用 clrzmq 对 C 和 Node JS 使用 ZeroMQ 库 我有能力执行推拉 h