簡體   English   中英

Ember JS中的服務器發送事件

[英]Server Sent Events in Ember JS

我有一個應用程序,在點擊鏈接瀏覽器需要觸發服務器上的東西,客戶端應該得到它的進展。 SSE是一個很好的候選人,但我無法在余燼中解決這個問題(我正在學習)。

我嘗試使用模板execute

<script type="text/x-handlebars" data-template-name="execute">
    <script>
       if(typeof(EventSource)!=="undefined") {
          var source=new EventSource("/execute/flow");
          source.onmessage=function(event) {
              if(event.data == 'end') {
                source.close();
              }else{
                document.getElementById("flow_result").innerHTML+= event.data + "<br>";
              }
          };
       } else {
          document.getElementById("flow_result").innerHTML="Sorry, your browser does not support server-sent events...";
       }
    }
    <script>
<script>

在頁面的某個位置有一個鏈接使用{{#link-to 'execute'}}來觸發此模板。 但不知何故,這個SSE javascript根本沒有執行。

問題:

1)我做錯了什么? (我懷疑我不應該把javascript代碼放在模板中)2)有沒有使用SSE和ember js的好例子?

不要在模板中傳遞代碼。 在控制器和應用程序的路徑中處理您喜歡的任何操作。 對於sse,您可以執行以下操作:

App.ApplicationController = Ember.Controller.extend({
  init: function() {
    var eventSource;
    eventSource = new EventSource(your-event-source);
    return eventSource.addEventListener(your-event-to-listen, function(e) {
      var data;
      return data = $.parseJSON(e.data);
      //Do whatever else you want in here with your data
    });
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM