2016-04-02 31 views
1

Bir soket bir kez nasıl başlatılmalı ve bir React/Flux uygulamasından nasıl geçmeli? Uygulama için sadece bir soket nesnesi olmalı mı? Bir bileşende başlatılmış mı, daha sonra eylemlere geçirildikten sonra mağazaya mı?Flux'te soket bağlantısı nasıl iletilir?

+1

Benim görüşüme göre, her istemci sadece sunucuyla iletişim kurmak için tek bir sokete sahiptir, böylece soketin başlatılmasını yöneten bir tekil sınıf olmalıdır. "emit" olayı Mağaza veya Eylem'de çağrılmalı ve "on" etkinliğinden veri almak için bir WebAPI'niz olmalı ve ardından eylemleri çağırmalısınız. Aslında, gelen verilere odaklanmak, Flux mimarisinde ortaya çıkan verilerden daha önemlidir. –

+0

@PhiNguyen Soketi nasıl başlatacağınıza dair bir örnek verebilir misiniz? (ecma6 ile değil lütfen) –

cevap

0

Bu, https://github.com/calitek/ReactPatterns React.14/ReFluxWebSocket'dir.

import Actions from '../flux/Actions'; 
 

 
module.exports = { 
 
    socket: {}, 
 
    init() { 
 
    this.socket = new Primus(); 
 
    this.socket.on('server:GotData', this.gotData); 
 
    Actions.apiInitDone(); 
 
    }, 
 
    getData() { this.socket.send('client:GetData', {}); }, 
 
    gotData(data) { Actions.gotData1(data); Actions.gotData2(data); Actions.gotData3(data); }, 
 
    setData(data) { this.socket.send('client:SetData', data); }, 
 
};

Ne yapmam apiInitDone eylem tetiği ilk veri yükü izin ardından başlat işlevini çağırmak ve olduğunu.

İlgili konular