Package com.jason.server

Examples of com.jason.server.Request


   * <li>修改人:
   * <li>修改日期:
   */
   private void parser(ByteBuffer buffer, Client sockector){
     do{
        Request requestData= sockector.getRequestWithFile();
       
        String requestIndex = requestData.getCrrentRequestIndex();
        ClustersMessage messageFrame = null;
        if(MyStringUtil.isBlank(requestIndex)){// 没有出现半包的情况
          messageFrame = new ClustersMessage();
          requestIndex = requestData.setMessageHeader(messageFrame);
        }else{// 出现半包的情况
          messageFrame = requestData.<ClustersMessage>getMessageHeader(requestIndex);
        }
       
        if(requestData.readFinish()){
          requestData.setByteDatas(new ArrayList<byte[]>(2));         
        }
       
        if(!messageFrame.isReadFinish()){
          messageFrame.parseMessageHeader(buffer);// 读取解析消息头
          requestData.setDataSizeLeftLong(messageFrame.getDateLength());// 设置数据长度
        }
       
        if(!requestData.readFinish()){// 是否读取完数据
          int bufferDataLength = buffer.limit() - buffer.position();
          int dataLength = bufferDataLength > requestData.getDataSizeLeftLong() ? requestData.getDataSizeLeftLong().intValue() : bufferDataLength;
                 
          byte[] datas = new byte[dataLength];
         
          if(dataLength > 0){
            buffer.get(datas);
           
            if(messageFrame.isMask()){// 做加密处理
            for (int i = 0; i < dataLength; i++) {
              datas[i] ^= messageFrame.getMaskingKey()[(int) (requestData.getDataPosition() % 4)];
              requestData.setDataPosition(requestData.getDataPosition() + 1);
            }
          }else{// 没做加密处理         
            requestData.setDataPosition(requestData.getDataPosition() + dataLength);
          }
           
            requestData.setDataSizeLeftLong(requestData.getDataSizeLeftLong() - dataLength);// 设置剩余数量的数据
           
            requestData.getByteDatas().add(datas);
          }
         
          if(requestData.readFinish()){// 消息读取完毕,放入处理队列中
          log.info("jason,the msg is : " + requestData.getRequestMessage());
         
          HashMap<String,String> data = MyStringUtil.parseKeyValue(requestData.getRequestMessage());
          sockector.addRequest(data);
          data.put(WebSocketConstants.REQUEST_INDEX, requestIndex);
         
          requestData.clear();// 清空字节数组
          }else{
            log.info("jason,the msg is : 78" );
          }
        }
      }while(buffer.limit() > buffer.position());// 处理粘包的情况     
View Full Code Here


        log.info("the msg received: " + msg);
       
        /*HashMap<String,String> requestData = new HashMap<String,String>();
        sockector.addRequest(requestData);
        requestData.put(Constants.FILED_MSG, msg);*/
        Request requestData= sockector.getRequestWithFile();         
          String requestIndex = requestData.getCrrentRequestIndex();
       
        HashMap<String,String> data = MyStringUtil.parseKeyValue(msg);
        sockector.addRequest(data);
        data.put(WebSocketConstants.REQUEST_INDEX, requestIndex);
       
      }else{// 通过复杂的数据帧格式来传递数据
        parserVersion6(buffer,sockector);
      }
    }else{// 进行握手处理
      String msg = CoderUtils.decode(buffer);
      if(MyStringUtil.isBlank(msg)){
        return;
      }
     
      log.info("the msg received: \r\n" + msg);
     
      HashMap<String,String> requestData = new HashMap<String,String>();
      sockector.addRequest(requestData);
     
      try{
        WebSocketRequest requestInfo = parserRequest(msg);
       
        requestData.put(Constants.FILED_MSG, generateHandshake(requestInfo));
        requestData.put(Constants.HANDSHAKE, Constants.HANDSHAKE);
        sockector.setProtocolVersion(requestInfo.getSecVersion().toString());//设置协议版本
      }catch(UnsupportedEncodingException e){
        e.printStackTrace();
      }
    }
View Full Code Here

    sockector.addRequest(requestData);
    requestData.put(Constants.FILED_MSG, msg);*/
   
   
      do{
        Request requestData= sockector.getRequestWithFile();
       
        String requestIndex = requestData.getCrrentRequestIndex();
        WebSocketMessage messageFrame = null;
        if(MyStringUtil.isBlank(requestIndex)){// 没有出现半包的情况
          messageFrame = new WebSocketMessage();
          requestIndex = requestData.setMessageHeader(messageFrame);
        }else{// 出现半包的情况
          messageFrame = requestData.<WebSocketMessage>getMessageHeader(requestIndex);
        }
       
        if(requestData.readFinish()){
          requestData.setByteDatas(new ArrayList<byte[]>(2));         
        }
       
        if(!messageFrame.isReadFinish()){
          messageFrame.parseMessageHeader(buffer);// 读取解析消息头
          requestData.setDataSizeLeftLong(messageFrame.getDateLength());// 设置数据长度
        }
       
        if(!requestData.readFinish()){// 是否读取完数据
          int bufferDataLength = buffer.limit() - buffer.position();
          int dataLength = bufferDataLength > requestData.getDataSizeLeftLong() ? requestData.getDataSizeLeftLong().intValue() : bufferDataLength;
                 
          byte[] datas = new byte[dataLength];
         
          if(dataLength > 0){
            buffer.get(datas);
           
            if(messageFrame.isMask()){// 做加密处理
            for (int i = 0; i < dataLength; i++) {
              datas[i] ^= messageFrame.getMaskingKey()[(int) (requestData.getDataPosition() % 4)];
              requestData.setDataPosition(requestData.getDataPosition() + 1);
            }
          }else{// 没做加密处理         
            requestData.setDataPosition(requestData.getDataPosition() + dataLength);
          }
           
            requestData.setDataSizeLeftLong(requestData.getDataSizeLeftLong() - dataLength);// 设置剩余数量的数据
           
            requestData.getByteDatas().add(datas);
          }
         
          if(requestData.readFinish()){// 消息读取完毕,放入处理队列中
          log.info("jason,the msg is : " + requestData.getRequestMessage());
         
          HashMap<String,String> data = MyStringUtil.parseKeyValue(requestData.getRequestMessage());
          sockector.addRequest(data);
          data.put(WebSocketConstants.REQUEST_INDEX, requestIndex);
         
          requestData.clear();// 清空字节数组
          }else{
            log.info("jason,the msg is : 78" );
          }
        }
      }while(buffer.limit() > buffer.position());// 处理粘包的情况
View Full Code Here

   * <li>修改人:
   * <li>修改日期:
   */
    private void parserVersion6(ByteBuffer buffer, Client sockector){     
      do{
        Request requestData= sockector.getRequestWithFile();
       
        String requestIndex = requestData.getCrrentRequestIndex();
        WebSocketMessage messageFrame = null;
        if(MyStringUtil.isBlank(requestIndex)){// 没有出现半包的情况
          messageFrame = new WebSocketMessage();
          requestIndex = requestData.setMessageHeader(messageFrame);
        }else{// 出现半包的情况
          messageFrame = requestData.<WebSocketMessage>getMessageHeader(requestIndex);
        }
       
        if(requestData.readFinish()){
          requestData.setByteDatas(new ArrayList<byte[]>(2));         
        }
       
        if(!messageFrame.isReadFinish()){
          messageFrame.parseMessageHeader(buffer);// 读取解析消息头
          requestData.setDataSizeLeftLong(messageFrame.getDateLength());// 设置数据长度
        }
       
        if(!requestData.readFinish()){// 是否读取完数据
          int bufferDataLength = buffer.limit() - buffer.position();
          int dataLength = bufferDataLength > requestData.getDataSizeLeftLong() ? requestData.getDataSizeLeftLong().intValue() : bufferDataLength;
                 
          byte[] datas = new byte[dataLength];
         
          if(dataLength > 0){
            buffer.get(datas);
           
            if(messageFrame.isMask()){// 做加密处理
            for (int i = 0; i < dataLength; i++) {
              datas[i] ^= messageFrame.getMaskingKey()[(int) (requestData.getDataPosition() % 4)];
              requestData.setDataPosition(requestData.getDataPosition() + 1);
            }
          }else{// 没做加密处理         
            requestData.setDataPosition(requestData.getDataPosition() + dataLength);
          }
           
            requestData.setDataSizeLeftLong(requestData.getDataSizeLeftLong() - dataLength);// 设置剩余数量的数据
           
            requestData.getByteDatas().add(datas);
          }
         
          if(requestData.readFinish()){// 消息读取完毕,放入处理队列中
          log.info("jason,the msg is : " + requestData.getRequestMessage());
         
          HashMap<String,String> data = MyStringUtil.parseKeyValue(requestData.getRequestMessage());
          sockector.addRequest(data);
          data.put(WebSocketConstants.REQUEST_INDEX, requestIndex);
         
          requestData.clear();// 清空字节数组
          }else{
            log.info("jason,the msg is : 78" );
          }
        }
      }while(buffer.limit() > buffer.position());// 处理粘包的情况
View Full Code Here

TOP

Related Classes of com.jason.server.Request

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.