Upgrade to Pro — share decks privately, control downloads, hide ads and more …

potatotips 5

wasnot
March 12, 2014

potatotips 5

GCMがこなくて困る場合の対策案です

wasnot

March 12, 2014
Tweet

More Decks by wasnot

Other Decks in Programming

Transcript

  1. ͍·͞ΒGCMʁ • GCM: Google Cloud Messaging ศརͳ௨஌ػೳ(iOSͰ͍͏APNS) • ࣌ʑಧ͔ͳ͍or஗ΕΔ •

    ͪΌΜͱૹ৴Ͱ͖͔ͨΘ͔Βͳ͍ ͓஌Βͤૹ৴ʗಉظ౳ͳΒ໰୊ͳ͍ →IPి࿩ʗνϟοτܥͩͱؾʹͳΔʂ
  2. αʔό socketΛ଴ػͯ͠ ͭͳ͕ͬͨΒkeepalive ͯ͠΋Β͏͚ͩɺ Β͍͠ var net = require('net'); var

    server = net.createServer( function(socket) { socket.write("welcome to KeepAlive\r\n"); socket.setTimeout(4*60*1000); // timeout settings 4MIN socket.setKeepAlive(true,1000 * 10); socket.on("data",function(data){ var str = data; if( str.toString().indexOf("ping") == 0 ){ socket.write("pong\r\n"); log.debug("client alive "); }else if( str.toString().indexOf('regist') == 0 ){ var name = // σόΠε໊ΛऔΓग़͢ // add new socket and name setClient(socket, name); setClientSocketName(socket, name); log.debug('REGIST='+name+":"+socket.remoteAddress); // ... // } }); }).listen(5228); →node.jsৄ͘͠ͳ͍͚Ͳ ɹखܰͦ͏ node.jsͩͱ͓खܰʁ
  3. ΫϥΠΞϯτ Socket conn = new Socket(“192.168.0.3”, 5228); InputStream is =

    conn.getInputStream(); OutputStream os = conn.getOutputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os)); String str; while ((str = reader.readLine()) != null) { // pong received if (str.startsWith("pong")) { // keepalive ੒ޭ } // regist in nodejs memory else if (str.startsWith("welcome to ")) { // device໊Λొ࿥ writer.write("regist " + name); writer.flush(); // ... ࣌ʑkeepalive͢Δ .. // } // receive something else if (str.startsWith(“hogehoge”) { // message ड৴, దٓॲཧ͢Δ // ... // } } // close conn.close(); socketΛͭͳ͍Ͱ σόΠε໊ొ࿥ ࣌ʑkeepaliveͷ୅ΘΓʹ ۭϦΫΤετΛૹΔ Կ͔͖ͨΒॲཧ͢Δ →ৗறServiceΛ࡞Ε͹ ɹͰ͖ͦ͏