websocket 解析

2017-04-19  本文已影响87人  heiheiwanne

websocket:WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——可以通俗的解释为服务器主动发送信息给客户端。

 PowerManager pm = (PowerManager) context.getSystemService(POWER_SERVICE);// init powerManager
//            mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.SCREEN_DIM_WAKE_LOCK,"target");
        mWakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "pollingservice");
mWakelock.acquire();

这里是用了AlarmManager 进行启动service ,但是在5.0以上的系统闹钟为1分钟一次,不可控,所以是用了service 开启线程处理

 public static String encryptByPrivateKey(String data) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException, BadPaddingException, IllegalBlockSizeException {
        int keyIndex = Calendar.getInstance().get(Calendar.YEAR) - 2017;
        keyIndex = keyIndex >= keyPrivateArray.size()?keyPrivateArray.size()-1:keyIndex;
        byte[] bytes = Base64.decode(keyPrivateArray.get(keyIndex),Base64.DEFAULT);
        PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(bytes);

        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        RSAPrivateKey privateK = (RSAPrivateKey)keyFactory.generatePrivate(pkcs8KeySpec);
        Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding"); //这里要跟java的RSA 标准一致

        cipher.init(Cipher.ENCRYPT_MODE, privateK);
        // 加密数据长度 <= 模长-11
        String[] datas = splitString(data,privateK.getModulus().bitLength()/8-11);
        String mi = "";
        //如果明文长度大于模长-11则要分组加密
        for (String s : datas) {
            mi += bcd2Str(cipher.doFinal(s.getBytes()));
        }
        return mi;
    }
ELAPSED_REALTIME:表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用相对时间(相对于系统启动开始)。
ELAPSED_REALTIME_WAKEUP: 表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用相对时间。
RTC:表示闹钟在手机睡眠状态下不可用,该状态下闹钟使用绝对时间(即系统时间)。当系统调用System.currentTimeMillis()方法的返回值与triggerAtTime相等时启动operation所对应的组件。
RTC_WAKEUP:表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟也使用绝对时间。

参考: 关于socket长连接的心跳包
android设备休眠
RSA加密解密坑
Android 关于休眠的几个坑点

上一篇 下一篇

猜你喜欢

热点阅读