メニューを閉じる

テクノデジタルグループ

メニューを開く

2018.02.22

プログラミング

socket.io-ruby-emitterでsocket.ioサーバーが落ちるならpackageをバージョンアップ

坂東です。

先日、こういう記事を書いたばかりなんですが、

マルチスレッドなSocket.ioでのRedis pub/subはsocket.io-emmiterを使おう

nodejsで稼働させてるsocket.ioサーバー側が落ちます。
確実に落ちるんじゃなく、emitを実行するときの

この「メッセージ」が一定の長さ以上になったときに、こんなエラーを吐いてnodejsが落ちてる。

 

とりあえず「msgpack-js/msgpack.js:200」でググると英語で同様の事例がでてきます。
つたなく訳してみると「return_buffres:trueを指定しろ」「うちはうまくいっている」「socket.io-redisとredisのバージョンが合ってないんじゃない」というアドバイスはあるけれども、質問者が解決に至っていない感じ。
日本語ソースがない、解決していない、ということは環境依存のレアケースなんです。

 

該当のnodejs環境は2年以上前につくったのでsocket.io周りのpackage.jsonが古い。

 

socket.ioはv2が出てるけれど下位互換が無いそうなのでv1の最新版に変える。

 

そしたら同様のエラーは出なくなりました。

「redisとsocket.io-redisのバージョンが合っていない」が正解だったんでしょうね。
それかsocket.io-ruby-emitterとの相違かな。
ちなRedisは3.2.X。

nodejsはバージョン上げたら「たまに落ちる」「メモリがぎゅんぎゅん減る」ことが何度か有りトラウマなのであまりアップデートしたくないんですよね。
もう少し様子見してから本番適用しようと思います。

おわり。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事

SNS共有