2014-04-11 68 views
1

我試圖使用角度飛鏢與websockets /服務器發送事件,並找不到任何文檔/示例(有一些angularJS,但這似乎是非常不同的這種事情)。我嘗試過的一些事情也沒有奏效。使用帶角度飛鏢的websockets /服務器發送的事件

有誰知道如何做到這一點?

這裏是什麼,我試過一個版本的錯誤:

@NgController (
    selector: "ACdistribution", 
    publishAs : "dstbn") 
class ACDstbnController{ 
    List <WtdPres> distbn; 

    void updateDstbn(List<WtdPres> newdstbn){ 
    distbn = newdstbn; 
    } 


    final dstbnsrc = new EventSource("../dstbns") 
     ..onMessage.listen((event){ 
    List wps = JSON.decode(event.data); 
    List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp)); 
    updateDstbn(newdistbn); 
     }); 

} 

我在酒吧構建得到的錯誤是:

web/provingground.dart:55:5: 
'updateDstbn' is only available in instance methods. 
    updateDstbn(newdistbn); 
    ^^^^^^^^^^^ 
+0

內能否請您提供您嘗試完成的內容?一些代碼顯示了你所嘗試的以及沒有按照你的希望運行的代碼會很棒。 –

+0

我有一個運行在服務器上的動態系統(在scala/play中)產生一定的概率分佈。我想定期向前端發送信息,該信息應該更新。這可以通過服務器發送帶有dom操作的事件(我在另一個應用程序中這樣做)。但是在一個角度控制器中,根據我嘗試做什麼的方式,我會得到各種錯誤。 – user2947436

+0

我覺得很難在這樣的通用層面上討論方法。你可以放下幾行代碼,例如你的控制器。我無法想象你會遇到什麼問題。也許它是關於一般的異步編程?請將您的問題的其他信息添加到評論中(評論中的代碼無法閱讀)。然後添加一條簡短的評論,以便獲得有關更新的通知。 –

回答

0

上有什麼可以做的限制最終字段的初始值設定項。

你可以嘗試把這段代碼構造

var dstbnsrc; 

ACDstbnController() { 
    dstbnsrc = new EventSource("../dstbns") 
     ..onMessage.listen((event){ 
    List wps = JSON.decode(event.data); 
    List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp)); 
    updateDstbn(newdistbn); 
     }); 
} 
+0

我其實先嚐試用var,然後將其改爲final。在這兩種情況下我都會得到相同的錯誤。 – user2947436

+0

你有沒有嘗試把初始化代碼放入構造函數(或某種方法)中?你的代碼看起來不錯,但我還沒有這樣做過。我將它更改爲var,因爲您無法從構造函數體中初始化最終字段。 –

+0

謝謝。我把它放在一個構造函數中,然後構建它。 – user2947436