我们希望创建一个聊天应用,用户输入一些文本后,其他用户可以看到这些内容。 Ext.Ajax.request 是通过Ajax向服务器发送数据的函数。
以下是在Sencha Architect 3中的代码:
以下示例将接收从Grails应用程序发送的服务器发送事件:
我们发现了Grails插件Atmosphere和Events Push,但是示例中只展示了Websockets而没有服务器端事件。我们不知道如何使用Events Push插件从Grails服务器广播文本。有人能帮忙吗?
以下是在Sencha Architect 3中的代码:
var panel = button.up();
var input = panel.getComponent("inputField");
console.debug("Message: " + input.getValue());
Ext.Ajax.request({
url: '/Chat/chatMain/send',
params: {
message: input.getValue()
},
success: function(response){
console.log("Message successfully send.");
},
failure: function(response){
console.log("ERROR!");
console.log('server-side failure with status code ' + response.status);
}
});
Grails中的聊天控制器:
class ChatMainController {
def send(){
//code for sending data back to client
//params.message contains message from browser it should be broadcast
//with server-side events
//event('sms', data) // will trigger registered browsers on 'sms' topic
}
}
以下示例将接收从Grails应用程序发送的服务器发送事件:
以下示例将接收从 Grails 应用程序发送的服务器发送事件:
var source = new EventSource('/Chat/chatMain/receive');
source.addEventListener('sms', showSms, false);
source.onmessage = function (event) {
// a message without a type was fired
showSms(event);
};
function showSms(e){
console.log(e.data);
}
我们发现了Grails插件Atmosphere和Events Push,但是示例中只展示了Websockets而没有服务器端事件。我们不知道如何使用Events Push插件从Grails服务器广播文本。有人能帮忙吗?