私はAtmosphereプラグインを使ってブラウザにデータをプッシュするGrailsアプリケーションを作成しています。しかし、私は単一のユーザー(セッションのユーザー)にブロードキャストチャネルを作成する際に問題があります。持っている私のコードは次のとおりです。Atmosphere Grailsシングルユーザ放送
サービス:
static atmosphere = [mapping: '/atmosphere/recommend']
def onRequest = { event ->
def request = event.request
def response = event.response
event.suspend()
def broadcaster = event.broadcaster
request.session.broadcaster = broadcaster
broadcaster.broadcasterConfig.addFilter(new XSSHtmlFilter())
}
def onStateChange = { event ->
if (!event.message) return
event.resource.response.writer.with {
write "<script>parent.callback('${event.message}');</script>"
flush()
}
}
コントローラー:
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = artistInstance
location = {
lat = eventInstance.location.lat
lng = eventInstance.location.lng
}
}
session.broadcaster.broadcast(jsonResult)
このソリューションは、すべてのユーザーにするJsonResultを放送します。私が達成したいのは、現在のユーザーだけに放送することです。 アイデア 詳細が必要な場合は、私に知らせてください。私はあなたがonRequestのイベントを共有するためにセッションを使用することができると考えて
おかげ
このように見えますか? http://stackoverflow.com/questions/4543831/unable-to-broadcast-to-single-connection-using-atmosphere-runtime –