CCS 방식은 구글 서버와 지속적인 커넥션을 유지하며 비동기 양방향 통신을 하는 XMPP방식의 엔드포인트를 의미합니다. XMPP의 비동기적인 특성에 의해 적은 리소스로 더 많은 메시지를 발송할 수 있으며 양방향 통신을 지원하기 때문에 서버에서 디바이스로 메시지를 보내는것뿐 아니라 반대로 디바이스에서 서버로 응답 메시지를 되돌려 보낼 수도 있습니다. 이 때에 디바이스는 메시지 수신을 위해 연결했던 커넥션을 재활용하므로 배터리를 아낄 수 있습니다.


PHP Sample

$xmppClient = new JAXL(array( ‘jid’ => $project_id . ‘@’ . $host, 
	‘pass’ => $auth_key, 
	‘auth_type’ => ‘PLAIN’, 
	‘host’ => $host, 
	‘port’ => $‘gcm_port’, 
	‘force_tls’ => true, 
	‘strict’ => false, 
	‘log_level’ => JAXL_DEBUG, 
	‘ssl’ => true 
	));
$xmppClient->add_cb(‘on_auth_success’, function() use($output) { $output->writeln(‘Authentication Success’); });
$xmppClient->add_cb(‘on_normal_message’, function($msg) use($output) {
});
$this->xmppClient->add_cb(‘on_error_message’, function() use($output) { $output->writeln(‘on error message’); });
$this->xmppClient->start();

Node JS Sample

var options = { 
	type: ‘client’, 
	jid: config.jid, 
	password: config.password, 
	port: config.port, 
	host: config.host, 
	legacySSL: true, 
	preferredSaslMechanism: ‘PLAIN’ };
xmppClient = new xmpp.Client(options); 
xmppClient.connection.socket.setTimeout(0); 
xmppClient.connection.socket.setKeepAlive(true, 10000);
xmppClient.on(‘error’, function(e) { console.log(“Error occured:”); console.error(e); console.error(e.children); });
xmppClient.on(‘online’, function() { console.log(“online”); });
xmppClient.on(‘connection’, function() { console.log(‘online’); });
xmppClient.on(‘stanza’, function(stanza) {});
xmppClient.on(‘authenticate’, function(opts, cb) { console.log(‘AUTH’ + opts.jid + ‘ -> ‘ + opts.password); cb(null); });

Spring Sample

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private GcmCcsSender mGcmCcsSender;

    @RequestMapping(value = "/{registrationId}", method = RequestMethod.GET)
    public void monsters(@PathVariable("registrationId") String registrationId) {
        String message = "TEST MESSAGE";

        mGcmCcsSender.send(registrationId, message);
    }
}

REFERENCE
  • http://jaxl.readthedocs.org/en/latest
  • https://developer.android.com/google/gcm/index.html
  • http://developer.android.com/google/gcm/ccs.html
  • https://medium.com/@abbiya/google-cloud-connection-server-xmpp-83b803cf2482
  • https://gist.github.com/jamesvnz/6756208
  • http://theeye.pe.kr/archives/2224
TAG ,
Posted by 신공표 트랙백 1 : 댓글 0

댓글을 달아 주세요