2013-12-11 11 views
3

우리는 사용자가 텍스트를 입력 한 다음 다른 사용자가 볼 수있는 채팅 응용 프로그램을 만들고 싶습니다. Ext.Ajax.request는 Ajax를 통해 서버로 데이터를 전송하기 위해 호출되는 함수입니다. Grails의에서서버가 Grails로 이벤트 보내기

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 애플리케이션에서 보내는됩니다 이벤트를 서버에 보내 받게됩니다 예를 아래

:

는 센차 아키텍트 3 코드
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 플러그인의 분위기와 이벤트를 찾았지만 예제에서는 websoc 만 보여줍니다. kets는 서버 측 이벤트가 아닙니다. 이벤트 푸시 플러그인을 사용하여 grails 서버에서 텍스트를 방송하는 방법을 알지 못합니다. 아무도 도와 줄 수 있니?

+2

이것은 이벤트 푸시 플러그인의 [예제] (https://github.com/alidadasb/eventPushExample)입니다. 도움이 될 수 있습니다. – Alidad

+0

Grails mailng list에 대한 자세한 논의가 있습니다. 어쩌면 거기에서 정보는 도울 수있다 : http://grails.1312388.n4.nabble.com/Server-Push-HowTo-td4641344.html – matejk

답변

0

Grails 서비스에서 서버 이벤트를 보낼 수 있습니다. The plugin page show's an example :

MyService.groovy

//will receive client events from 'saveTodo' topic 
@Listener(namespace='browser') saveTodo(Map data){ 
    //... 
    // will trigger registered browsers on 'savedTodo' topic 
    event([namespace: 'browser', topic: 'savedTodo', data: data]) 
} 

당신이 플러그인 모듈을 필요로하는 데 필요한 클라이언트에이를 받으려면 :

<r:require module="grailsEvents"/> 
<r:script> 
    var grailsEvents = new grails.Events("http://localhost:8080/app/"); 
    grailsEvents.send('saveTodo', data); //will send data to server topic 'saveTodo' 
    //will listen for server events on 'savedTodo' topic 
    grailsEvents.on('savedTodo', function(data){...}); 
</r:script> 

data 매개 변수는 서버 이벤트의 응답입니다.

문서 링크에서 Tomcat 구성을 확인하십시오. 중요한 단계입니다.