###前提・実現したいこと
お世話になります。
現在Webブラウザ上からプリンタ機器のSNMP検索が出来ないか調査をしています。
前提:まっさらなPC(OSは不問)にWebブラウザ(とりあえずChrome)が入っている状態。
実現したいこと:クライアントサイドのJavaScriptだけでUDP通信を行いたい。
###発生している問題・エラーメッセージ
試そうとしていることは以下になります。
1.Node.jsのnpmからnet-snmp(https://www.npmjs.com/package/net-snmp)をインストール
2.Node.jsのnpmからbrowserify(https://www.npmjs.com/package/browserify)をインストール
3.net-snmpのサンプルコードをbrowserifyで変換
4.Webブラウザで確認
4を実行時にクライアントサイド側でdgram.createsocket is not a functionのエラーが出て失敗しました。
いろいろ調べた結果、dgram内部はNode.js内部で処理しているのでdgramはbrowserify出来ない、
一般論としてクライアントサイド側でWebSocket,XHR,WebRTC以外での通信は出来ないこと、
W3CでUDPソケット通信がドラフトでリタイアされたことは分かりました。
(https://www.w3.org/standards/history/tcp-udp-sockets)
###試したこと
A,dgramをchrome-dgram(https://www.npmjs.com/package/chrome-dgram)に差し替えて試す
dgramがクライアントサイドで利用できないので該当部分をchrome-dgramに差し替えて検証してみました。
この方法だとSNMP検索は出来るのですがChromeアプリをインストール、Chromeアプリ上で実行する為
実現したいこととは少し違います。
B,dgramをdgram-browserify(https://www.npmjs.com/package/dgram-browserify)に差し替えて試す
こちらはdgramを別のパッケージdgram-browserifyに差し替えて試してみました。
結果、dgram-browserifyはdgram.createsocketの部分をWebSocketを代用して作られているため
UDPポートを利用して送信していないためSNMP検索が出来ませんでした。
C,mock-dgram(https://www.npmjs.com/package/mock-dgram)に差し替えて試す
こちらはPC上のメモリをUDP通信と見せかけてデータのやり取りを行っていたので
実際にUDP通信は行われていませんでした。
D,NaCl+PPAPIを利用して外部プログラムからSNMP検索を行う
こちらも実現できていることは確認しましたがA案と同じくWebブラウザ以外に外部プログラムを用意する
必要があるため実現したいこととは少し違います。
JavaScript初心者なのであまりよく分かっていませんが私としては、WebRTC,DNS等でWebブラウザ上から
UDPデータのやり取りが行われているのだからUDP通信できるファイルディスクリプタさえ
JavaScriptで作れたらUDPポートからの通信は出来るんじゃないか?と考えています。
上記手段以外でWebブラウザ上からUDP通信(SNMP検索)を行う手段はあるでしょうか?
以上、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。