私はSSEを使用しており、JavaScript用のロジックが組み込まれたEventStreamを使用しています。onopen
が成功した結果を返す一方で、onmessage
コールバックが機能していません。 ChromeEventStreamタブ内)では、データの結果が期待どおりに一覧表示されます。
これはEventSourceのJSスニペットです
var eventSource;
$(function () {
eventSource = new EventSource('get/status/');
eventSource.onopen = function () {
console.log("Sse connection opened");
};
eventSource.onerror = function () {
console.log("error occured");
};
eventSource.onmessage = function (event) {
console.log("received");
};
});
ご覧のとおり、データが送信されていますが、onmessage
がトリガーされることはありません。誰かが私にこの行動を説明できますか?
[〜#〜] edit [〜#〜]:onopen
とonerror
は両方とも機能します。
スクリーンショットによると、イベントストリームには、"foo"
ではなく"message"
タイプのイベントが含まれています。これはデフォルトのタイプのみです(イベントストリームにevent
フィールドがありません)。から 仕様 :
イベントのtype属性を
message
、[…]に初期化しますイベントタイプバッファの値が空の文字列以外の場合は、新しく作成されたイベントのタイプをイベントタイプバッファの値と等しくなるように変更します。
ここでは、"foo"
イベントをリッスンするようにリスナーを設定する必要があります。
eventSource.addEventListener("foo", function() {...})