如何围绕现有的tcp套接字包装mqtt客户端?

时间:2016-12-17 15:21:09

标签: node.js sockets typescript tcp mqtt

我需要在现有的tcp套接字周围包装mqtt.Client以访问有关刚刚打开的连接的某些信息(例如localAddress和localPort)。是不是可以在打字稿中做这样的事情?

import * as mqtt from 'mqtt';
import * as net from 'net';
class Client
{
    private _client: mqtt.Client;
    private _socket: net.Socket;

    constructor()
    {
        this._socket = net.createConnection({host: 'my_host', port: 1234}, () => 
        {
            this._client = new mqtt.Client(this._socket, {
                // options here.
            });

            // Access the socket info
            // this._socket.localAddress
            // this._socket.localPort
        });
    }
}

或许还有另一种方法可以重用mqtt.connect函数打开的同一个tcp套接字? 谢谢你的帮助!

我使用此npm module来实现客户端。

1 个答案:

答案 0 :(得分:0)

我已经设法使用mqtt API进行调整。 如果遇到此问题,只需从存储在客户端内的嵌入式make_shared对象中获取所需信息。 像这样:

stream