sudo rm -rf /

(株)アジャストのエンジニアリング?ブログです

Category: node.js

【node.js】 ソケットのIDが意図せず変わってしまう件(解決?編) 【socket.io】

前回の記事では、socket.ioのソケットIDが頻繁に変わってしまう問題について調査しました。

その結果、何かしらの原因で接続が切断されているため、
その都度新しい接続扱いになりIDが変わってしまっているということがわかりました。

この問題は、テキストチャットのような比較的通信量の少ない(小さい)スクリプトでは発生しておらず、
頻繁に画像データをサーバに送信する通信量の多い(大きい)スクリプトでのみ発生しています。

今回はもう少し掘り下げて、なぜ接続が切断してしまうのかを調べてみたいと思います。
調査に使ったサンプルコードは、前回の記事を参照ください。

Continue reading

【node.js】 ソケットのIDが意図せず変わってしまう件(調査編) 【socket.io】

こんにちは、渕上です。

このブログの為にNode.js + Socket.io を使って疑似ビデオチャットを書いていたのですが、
socket接続中に「socketのidが変わってしまう」という現象が起こりました。

ブログのためだけのコードなので、大きな実害がなければいいかなーくらいに考えていたのですが(よくない)
残念ながら実害がありました。かなり大きな。

Socket.ioのルーム機能を使って下記のような実装を行っていたため、
socketのidが変わってしまうと、入室中のルームを特定することができなくなりました。弱った。

  1. 初回のsocket接続時にsocket.idをルームにjoin(入室)させる
  2. 同時にsocket.idとルーム名を関連付けるObjectを作成
  3. 以降の通信ではsocket.idから現在入室しているルームを特定

まあでも、弱っていても仕方がない。

バグと喧嘩は江戸の華、転んでもただでは起きない精神で、
この問題の調査過程を今回の記事にしてみたいと思います!

Continue reading

node.jsを使ってサーバサイドで画像合成してみる (gm(GraphicsMagick for node.js)編)

秋の天皇賞の外枠不利を同僚に話したところ、
競馬を知らない方には新鮮な情報だったようで、とても驚かれました。
どうでもいいですね。アジャストの渕上です。

相変わらずブログの持ち回りが早くて疲労困憊です。
終始競馬の話を書いててよければどうにでもなるのですが、
そういうわけにもいかなそうですので、
今回も先週に引き続きnode.jsで簡単に画像の加工ができる
モジュールをご紹介していきたいと思います!

Continue reading

node.jsを使ってサーバサイドで画像合成してみる (node-canvas編)

誰かもつぶやいていましたが、ブログの順番が回ってくるのがあまりにも早いような感じがします。

前回まで、node.jsとOpenCVを使ったチャットを作ろうと奮闘しておりましたが、
OpenCV(node-opencv)だけで画像合成に手間取っており、
他の手段で画像合成を行うことを検討しています。

今回は、その調査結果を記事にしていきたいと思います。

Continue reading

笑い男ビデオチャットを作りたい! その4 テキストチャットの実装

こんにちは、渕上です。

前回の記事では、
ローカルPCのビデオカメラで撮影している動画を画像にキャプチャして、サーバに送信、
サーバで処理を行ってローカルPCに送信するデモを作成しました。

今回は一旦動画をはなれて、かんたんなテキストチャットを実装したいと思います。

(前回の記事内で、今回を最終回としたいようなことを書いたのですが、
力及ばず、延長戦に突入しそうです。)

Continue reading

笑い男ビデオチャットを作りたい! その3 node.jsでコードを書いてみる

普通自動車免許の学科試験に落ちました。アジャストの渕上です。

前回は、笑い男ビデオチャットを実装するための方法を検討しました。
今回は、その方法に沿ってコードを書いてみようと思います。

Continue reading

笑い男ビデオチャットを作りたい! その2 実装方法の検討をする

久しぶりの更新となります。
アジャストの渕上です。

私の更新回では、笑い男の画像で顔をマスクできるビデオチャットを実装したいと思っています。

前回の記事では、画像の顔認識を行い顔の部分を笑い男でマスクする処理を、
OpenCV + python テストし、OpenCVを使えば画像の顔認識が簡単にできることがわかりました。

今回は一旦コードを書く手を休め、ビデオチャット化する方法を検討してみます。

Continue reading

© 2021 sudo rm -rf /

Theme by Anders NorenUp ↑