EasyNTSは、Tsingseeビデオチームによって開発されたビデオクラウドゲートウェイデバイスです。EasyNTSクラウドターミナルは、機器サイトに配置されます。EasyNTSクラウドゲートウェイは、Alibaba Cloud / Tencent Cloud /自作クラウドで実行されます。すべてのオンサイトデバイスのネットワーク状態をいつでもどこでも制御できます。リモートでのデバッグとトラブルシューティングにより、オンサイトの運用とメンテナンスのコストを大幅に削減します。
EasyNTSの開発にリモコン機能を追加しましたので、この記事ではその機能を簡単に紹介します。
EasyNTSクラウドゲートウェイでは、コンソールをクリックすることは、制御のためにデバイスにリモートでログインするためのtelnetコマンドに相当します。しかし、リモートログインの前にデバイスのポート23が貫通されていない場合、コンソールをクリックすると、ポートが構成されていないというエラーが報告されます。
ポート23が貫通しているかどうかを確認する方法は?一連のコードを設計しました。デバイス側のポート23を貫通した後、コードから貫通ポートがあるかどうかを確認します。存在する場合は、リモート制御のためにデバイス側との長いTCP接続を形成し始めます。
コンパイルされたコードは次のとおりです。
tpc.DeviceId = form.ID
tpc.LocalIp = "127.0.0.1"
tpc.LocalPort = "23"
tpc.Type = "Tcp"
dao.DB().Where(tpc).First(&tpc)
if tpc.RemotePort == consts.EmptyString {
AbortWithString(c, http.StatusBadRequest, consts.MsgErrorNeedTunnelPort)
return
}
var ntst do.TNtsT
ntst.ID = tpc.NtsTId
dao.DB().Where(ntst).First(&ntst)
if ntst.Addr == consts.EmptyString {
AbortWithString(c, http.StatusBadRequest, consts.MsgNoNTST)
return
}
conn, err := gote.Dial("tcp", fmt.Sprintf("%s:%s", ntst.Addr, tpc.RemotePort))
if err != nil {
errUnmarshal = do.JsonResponse{HasError: true, Message: do.SIGN_IN_FORM_TYPE_ERROR_VALID}
} else {
conn.Close()
errUnmarshal = do.JsonResponse{HasError: false, Addition: "telnet", UserName: device.RemoteUser, Port: estring.ParseInt(tpc.RemotePort)}
}
以下は、23ポートを正常に貫通するデバイス側のインターフェースです。
EasyNTS Cloud Gatewayの詳細
EasyNTSクラウドゲートウェイの役割は、デバイスの内部ネットワークIP:ポートをEasyNTSクラウドゲートウェイサーバーに接続して、パブリックネットワーク上に固定IPアドレスがなく、インターネットパブリックネットワークIP:ポートを形成することです。これにより、デバイス機能の開始と呼び出しが容易になります。 。
現在、EasyNTSクラウドゲートウェイを使用して、遠隔操作、保守、店舗管理を行っている事例が既にいくつかあります。ご興味がおありでしたら、詳細についてお問い合わせください。ビデオ関連のソリューションについては、TSINGSEE Qingxiビデオにアクセスしてください。ニーズや質問がある場合は、ようこそいつでもお問い合わせください!