« Authorization:REST(6) | トップページ | Client の引っ越し:REST(8) »

2015年2月25日 (水)

PvtServer の引っ越し:REST(7)

ORCA から 受付 CLAIM 情報を受けたときに WebSocket でクライアントに伝える仕組みを作った。

処理の流れ

クライアントは起動時にサーバの WebSocket につないで session を確立しておく → PvtServer は ORCA から CLAIM を受ける → CLAIM を受けた PvtServer は PatientVisitModel に変換して addPvt する → addPvt により PatientVisitModel テーブルが変化すると PatientVisitModelListener が呼ばれる → PatientVisitModelListener は WebSocket のクライアント全員に PatientVisitModel を送る

クライアント側

WebSocket につなぐ時に Endpoint を extend したクラスを指定して,そのクラスで pvt を受け取る。
  • DolphinClientContext
    public Session setEndpoint(Endpoint endpoint) {
      webSocketContainer.connectToServer(endpoint, webSocketUri);
    }
    
  • WatingListImpl
    DolphinClientContext.getContext().setEndpoint(new Endpoint(){
      @Override
      public void onOpen(Session session, EndpointConfig config) {
        session.addMessageHandler(new MessageHandler.Whole() {
          @Override
          public void onMessage(String message) {
             // pvt 処理
          });
        }
    });
    

サーバ側

  • PatientVisitModel にリスナをつける。
    @Entity
    @EntityListeners(PatientVisitModelListener.class)
    @Table(name = "d_patient_visit")
    public class PatientVisitModel extends InfoModel  {
      :
    
  • pvt が変化したら,通知を受けた PatientVisitModelListener から WebSocket クライアントに PatientVisitModel を送る。

« Authorization:REST(6) | トップページ | Client の引っ越し:REST(8) »

OpenDolphin」カテゴリの記事