拡張機能開発でOSネイティブソケットを使う

Firefox拡張機能開発の話。


既存のXPCOMオブジェクトを利用して、javascriptで通信プログラムを書くのに挫折気味です。
あまりにブルーな気分になったので、オープンソースなライブラリでも使用してやろうかと思い、まずCのsocket関係の関数って直接使えるのか・・・という疑問があり試してみました。


とりあえず、bind, listen、acept, recv, sendなどの基本的な関数をXPCOMでラップしてポートが開けるのかテスト。
普通に開けてacceptも可能でした。
当然ながら、acceptするとスレッドがブロックするので、nsIThreadとかnsIThreadPoolとかと組み合わせてスレッドを使ってみましたが普通に動作しました。


socket関係の関数を呼び出そうとすると、関数の参照が置き換えられてsecurity sandboxに引っかかるとかはないようです。
まぁそんなことする側も大変ですしね。
当然と言えば当然か。
これで代替案が使えそうです。
# が、とあるライブラリを使おうと思ってみたものの、サンプルコードはともかく、リファレンスページがnot foundとはこれいかに・・・。


まぁ移植性考えたら全部,javascriptで書くべきなんでしょうけどね。