Я создаю приложение Grails, которое использует плагин Atmosphere для ввода данных в браузер. Однако у меня возникают проблемы с созданием широковещательного канала для одного пользователя (пользователя сеанса). Мой код имеет следующие:Атмосфера Grails single user broadcast
Услуги:
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 каждому пользователю. То, что я хочу достичь, - это трансляция только для текущего пользователя. Любые идеи? Если вам нужна дополнительная информация, просто дайте мне знать.
Благодаря
похоже, что это похоже на то, чего вы не хотите? http://stackoverflow.com/questions/4543831/unable-to-broadcast-to-single-connection-using-atmosphere-runtime –