2017-07-11 8 views
0

node-opcua 0.0.64を使用しています。 クライアントでopcuaSessionのwriteメソッドを使用して、1つの変数のブール値を書き込もうとしています。 一部の通話は成功していますが、約70%は成功していません。 正確に60秒後、応答に「トランザクションがタイムアウトしました」と表示されます。ステータスコードは「statusCode」は「未定義エラー」です。 クライアントでいくつかのアクションを実行できますか? transportTimeoutはどうですか?私はそれがデフォルトとして10000に設定されていると信じています。node-opcua、書き込みエラー:トランザクションがタイムアウトしました

答えて

0

セッションタイムアウト間隔内にクライアントとサーバー間でトランザクションが行われない場合、サーバーは接続を切断します。

接続がアップ状態のままことを確認するために、クライアントは通常2つのテクニック使用しています:

  • をいずれか(例えばServerStatusを読んで)定期的にリード要求トランザクションを発行

  • 空のサブスクリプションを確立。サブスクリプションにはキープアライブ メカニズムが組み込まれており、クライアントとサーバーが少なくとも1つの空のPublishRequest/PublishResponseを強制的に通信するように強制します。あなたは、あなたのNodeOPCUAクライアントへのパラメータとしてkeepSessionAlive: trueを渡すことができ、定期的ServerStatusの読みをインストールする

注意。

また、特定のwriteRequestのタイムアウトは、要求が進行するために割り当てられた時間内に応答しない場合、サーバー自体によって引き起こされる可能性があります。この場合、これはサーバーの実装そのものの問題になります。

関連する問題