socket.io 接続で大量のデータを送信する際に問題が発生していると思います。私は RabbitMQ 交換にサブスクライブし、リアルタイムでグラフを作成するためにデータ メッセージをクライアントに送信しています。
q.subscribe({routingKeyInPayload:true},function (message) {
socket.emit('message', {
key: message._routingKey,
//msg: decodeURIComponent(message.data),
client: qName,
ts: new Date()
});
console.log('broadcasting: ' + message._routingKey);
});
「msg」がコメントアウトされていることがわかります。これをコメントアウトすると、1 秒あたり最大 100 ~ 200 件のメッセージを送信できます (最大 800 件 / 秒)。ただし、JSON データに「msg」が含まれていると、次のエラーが発生します。
events.js:72
throw er; // Unhandled 'error' event
エラーが実際に何であるか、またはそれを処理する方法がわかりません。アドバイスをいただければ幸いです。
編集: 典型的なメッセージは次のようになります (念のため、ユーザー ID をサニタイズしました):
{"key":"message.1","client":"7raQ6vpCO-PZ5ZTWQVD9","ts":"2013-09-12T22:19:06.677Z"}]}
{"fromuserid": 62XXXX34, "deleted": 0, "messagetype": 1, "datetime": 1379024283000, "touserid": 12XXXX41, "message": "Bored lol, really bored lol", "id": 27963323859}