Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails sImple chat-聊天消息不显示在屏幕上_Grails - Fatal编程技术网

Grails sImple chat-聊天消息不显示在屏幕上

Grails sImple chat-聊天消息不显示在屏幕上,grails,Grails,以下是从中获得的代码片段 MessageController功能如下所示: @Secured([ 'ROLE_USER']) def retrieveLatestMessages() { println "test" def messages = Message.listOrderByDate(order: 'desc', max:1000) [messages:messages.reverse()] println me

以下是从中获得的代码片段

MessageController功能如下所示:

@Secured([ 'ROLE_USER'])
    def retrieveLatestMessages() {
        println "test"
        def messages = Message.listOrderByDate(order: 'desc', max:1000)
        [messages:messages.reverse()]

        println messages


   }
上面的控制器函数被执行,我在控制台上看到println语句,但是数据没有在屏幕上填充

有人能帮我吗

更新

[{类别:myPro.Message,id:3,日期:2014-07-23T17:31:58Z,消息:dfdf,名称:hi},{类别:myPro.Message,id:2,日期:2014-07-23T17:31:56Z,消息:dfdfdf,名称:dd},{类别:myPro.Message,id:1,日期:2014-07-23T17:31:18Z,消息:xxxx,名称:fie}]

您的方法(在本例中为RetrievelatesMessages操作)必须返回一个模型,但它会返回println的输出

要使代码正常工作,必须将模型放在最后一行,或使用return语句显式返回它:

def retrieveLatestMessages() {
    println "test"
    def messages = Message.listOrderByDate(order: 'desc', max:1000)
    println messages
    [messages:messages.reverse()]
}
试试这个

import grails.converters.JSON

@Secured([ 'ROLE_USER'])
def retrieveLatestMessages() {
    println "test"
    def messages = Message.listOrderByDate(order: 'asc', max:1000)
    render messages as JSON
}

享受。

我让这个示例应用程序在我的应用程序上运行,没有任何问题,但问题是,这个过程要求你一致地轮询页面,而且它是资源密集型的:

我最终编写了一个domainClass,它绑定到一个使用HQL db的数据源,并且在我自己的应用程序之外,这个过程需要一个db表来流式聊天

另一种选择是远离轮询并使用WebSocket:

看看这个视频

然后看看这个视频

最后看看这个:


这已经更新,包括使用winsocket进行简单聊天的第二种方法。…

我有此设置,但在视图上没有显示任何内容。我还添加了我获得的JSON,但它没有显示在屏幕上。我已经在帖子上发布了我的JSON字符串。
def retrieveLatestMessages() {
    println "test"
    def messages = Message.listOrderByDate(order: 'desc', max:1000)
    println messages
    [messages:messages.reverse()]
}
import grails.converters.JSON

@Secured([ 'ROLE_USER'])
def retrieveLatestMessages() {
    println "test"
    def messages = Message.listOrderByDate(order: 'asc', max:1000)
    render messages as JSON
}