私はc#でイベントクラスを持っています:
public class AreaInterventoCreata{
//public properties
}
var message= new AreaInterventoCreata();
このクラスのサーバー側のインスタンスを作成します。私の目的は、この種のイベントに参加しているクライアントにこの作品を伝えることです.
したがって、次のようにブローカーRabbitMQに渡しますbyte[]
。
var responseBody = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message))
responseChannel.BasicPublish(
"", // exchange
properties.ReplyTo, // routingKey
responseProperties, // basicProperties
responseBody); // body
一部の node.js サーバーがこの種類のメッセージを購読しています:
q.subscribe(function (message) {
for (var i = 0; i < sockets.length; i++) {
console.log('_sockets[' + i + '] emitted');
sockets[i].emit(event, message);
}
});
この node.js 自体がブラウザからの socket.io 接続を受信しているため、これらのソケット (たとえば、これらのブラウザ) へのプッシュを実行できます。
sockets[i].emit(event, message);
最後に、ブラウザに次のメッセージが表示されます。
var socket = io.connect('http://localhost:8091');
socket.on('Events_AreaIntervento_AreaInterventoCreata:Events', function (data) {
var json = Utf8.decode(data);
});
firebug を介してデータを検査すると、 として定義された数値の配列を持つオブジェクト データdata.data
です。
この数値の配列は、プロセスの最初に与えられたバイトの配列であると想定しました。この仮定は間違っていますか?
- JavaScriptで通常のオブジェクトを操作できるようにするにはどうすればよいですか?(それを見つけた!)
- node.js サーバー レベルで直接 json に変換する必要がありますか? それはより効率的ですか?そうするためにもっと何か?
わかりました このウェブサイトの助けを借りて(少なくともその一部)それを見つけました
var Utf8 = {
// public method for url decoding
decodeArray: function (utfArray) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while (i < utfArray.length) {
c = utfArray[i];
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if ((c > 191) && (c < 224)) {
c2 = utfArray[i + 1];
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utfArray[i + 1];
c3 = utfArray[i + 2];
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
このように使われる
<script>
var socket = io.connect('http://localhost:8091');
socket.on('Events_AreaIntervento_AreaInterventoCreata:Events', function (msg) {
var jsonString = Utf8.decodeArray(msg.data);
alert(jsonString);
});
</script>
しかし、クライアントで行う方が良いのか、node.jsサーバーで行う方が良いのか、node.jsサーバーで行う方法はまだありますか?