【问题标题】:How to connect to RouterOS via Nodejs WebSocket?如何通过 Nodejs WebSocket 连接到 RouterOS?
【发布时间】:2021-03-09 01:05:58
【问题描述】:

我正在学习websocket nodejs,想通过websocket连接routeros,如https://github.com/aluisiora/node-routeros/包,包太笼统了,我只想知道怎么连接。

我已经阅读了官方文档https://wiki.mikrotik.com/wiki/Manual:API,但我无法理解它。

我试过这种方式,但没有得到任何回应:

client.connect(port, host, function () {
  console.log("Connected");
  client.write(encodeString("/login"));
  client.write(encodeString(`=name=${user}`));
  client.write(encodeString(`=password=${password}`));
});

client.on("data", function (data) {
  console.log("Received: " + data); // not excetue
});

我正在寻找通过 nodejs 套接字连接到 routeros 的代码示例,希望有人在这里分享。

在此先感谢,非常感谢任何回答。

【问题讨论】:

    标签: node.js sockets websocket router router-os


    【解决方案1】:

    考虑接下来的事情:

    • RouterOS API 有它自己的协议,它有点复杂。 official wiki 告诉我们如何在 LOW LEVEL 与它进行交互。由于这些原因,很难理解。不适合高级程序员。别担心,我们都经历过。
    • Routeros v7 有一个 REST API,这会让工作更轻松,交换语言是 HTTP 协议,很简单吧?实际上是在beta 阶段。
    • RouterOS Wiki 有其他的 node.js 包,看起来更简单:Mikronode

    解决方案

    安装mikronode

     $ npm install mikronode
    

    使用它:

     var api = require('mikronode');
    
     var connection = new api('192.168.0.1','admin','password');
     connection.connect(function(conn) {
    
        var chan=conn.openChannel();
    
        chan.write('/ip/address/print',function() {
           chan.on('done',function(data) {
    
              var parsed = api.parseItems(data);
    
              parsed.forEach(function(item) {
                 console.log('Interface/IP: '+item.interface+"/"+item.address);
              });
    
              chan.close();
              conn.close();
    
           });
        });
     });
    

    【讨论】:

    • 到目前为止,我已经使用了 routeros 节点包,一切正常。但是,因为开发停止了,我想自己做一个包。现在我知道它是如何工作的,并且在查看了 Github 上的一些包之后,我可以使用自己的代码连接到 routeros,我必须了解数据缓冲区。关于RouterOS V7 REST API,这是一个很酷的功能,我迫不及待地想在稳定版中尝试一下,这个功能什么时候会在稳定版中发布?
    • 我想没人知道 ;) v7 处于 beta 状态超过一年...或两年 ;) 如果您了解低级程序,请继续!请,如果您认为回复有用,请检查它;)非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2018-09-12
    • 2017-04-25
    • 2015-09-23
    • 2014-09-16
    相关资源
    最近更新 更多