2016-11-20 9 views
0

私はgrailsサービスからメッセージを送信しようとしていて、Webページ(receiver.gsp)に表示しています。次のようにサーバーから非同期でデータを受信し、Ajaxを呼び出さずに

マイサービスコードは次のとおりです。

public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) 
       throws IOException { 
      String message = new String(body, "UTF-8"); 
      groovyPageRenderer.render view: '/receiver/receiver', model: [msg: message] 
      println(" [x] Received '" + message + "'"); 
     } 

マイreceiver.gspページ:

<div class="body"> 
<h1>Receiver</h1> 

${msg} 

私はちょうど非同期に私のサービスからレンダリングされたメッセージを表示したいです。

私のサービスがmsgをレンダリングするたびに、値はreceiver.gspページにキャッチされますが、表示されません。

ご意見やご協力をいただければ幸いです。前もって感謝します。

+0

ページがサーバーを離れてブラウザーに入った後は、ブラウザー内でサーバー側プログラミング言語を実行することはできません.JavaScriptのみです。サーバーからデータを非同期的に取得し、DOMを更新する場合ajax – charlietfl

+0

次に、プッシュ通知はどのように機能しますか?サーバーからデータをプッシュする他の方法はありますか? –

+0

プッシュは、この意味で、ウェブソケットのようなものです。私はWebソケットが何であるかを見て、それらについて学ぶことをお勧めします。 Grailsにはいくつかのプラグインが用意されています。 –

答えて

0

なぜServiceを使用してViewをレンダリングしますか?私はあなたが表示したいものを表示するにはControllerを使うべきだと思います。

+0

はい、コントローラを使用していますが、私の場合、メッセージを非同期で送信しようとしています。このサービスは、アプリケーションの起動時に一度だけ呼び出されます。だから、コントローラからレンダリングすることはほとんど不可能だとわかった。 –

関連する問題