Я использую плагин Atmosphere в приложении Grails, чтобы сделать Ajax push-вызовы для клиента.Базовая архитектура состоит в том, что у меня есть цикл на сервере, который создает данные, которые я хочу отправить в браузер, поэтому на каждой итерации он использует метод атмосферы broadcast () для отправки данных клиенту.
Он отлично работает, когда я использую его вне цикла, например:
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = 45.678909
lng = -14.45667
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)
Однако, когда я использую его программно внутри цикла, браузер выдает ошибку: Недопустимая или недопустимая строка былауказанный код: 12 и не работает должным образом.
Упрощенный пример цикла выглядит следующим образом:
[[lat:45.678909,lng:-14.45667],[lat:32.56433,lng:22.4566]].each{
def builder = new JSONBuilder()
def jsonResult = builder.build{
artist = "incubus"
location = {
lat = '"${it.lat}"'
lng = '"${it.lng}"'
}
}
broadcaster['/atmosphere/recommend'].broadcast(jsonResult)
}
Есть идеи, почему это происходит?Спасибо!