Node.jsとSocket.IOを使用するリアルタイムトラッキングアプリケーションに取り組んでいます。ターゲットサイトにあるトラッキングコードには、ブラウザのユーザーエージェント文字列を取得してサーバーに送り返すコードが含まれています。これは通常は正常に機能しますが、このデータが未定義に設定される場合があります(これが発生する場所です)。
今のところ、サーバー上に巨大なtry / catchブロックがあるので、それがどのブラウザーであるかを検出するために定義したメソッドを実行してもクラッシュしません(match()メソッドを実行しようとするとクラッシュします)。これは、ボットから、またはユーザーエージェントがないか、改ざんされた他のブラウザから発生していると思います。私はそれについて間違っていますか?他に理由はありますか?
Socket.IOはブラウザ検出のために何かを提供しますか?いずれにせよ、ブラウザー検出機能をより堅牢にする必要があることはわかっていますが、このプロジェクトを軌道に乗せているところです。
これを行うためのより良い方法がない場合は、サーバーに送信されたデータが未定義であるかどうかを確認し、それを「その他」のブラウザーと見なす方がよいでしょうか。
合計接続数と合計ブラウザ数の違いがわかりますか?現時点では、100を少し超える違いがあります。このブラウザ追跡の問題が発生していなかった場合、数値はまったく同じである必要があります(すべての接続にブラウザ、解像度、オペレーティングシステム、およびURLがあるため)。