Package cn.dreampie.web.websocket

Source Code of cn.dreampie.web.websocket.MessageDecoder

package cn.dreampie.web.websocket;

import com.alibaba.fastjson.JSON;

import javax.websocket.DecodeException;
import javax.websocket.Decoder;
import javax.websocket.EndpointConfig;

/**
* Created by ice on 14-9-17.
*/
public class MessageDecoder implements Decoder.Text<Message> {
  @Override
  public void init(EndpointConfig ec) {
  }

  @Override
  public void destroy() {
  }

  @Override
  public Message decode(String msg) throws DecodeException {
    // Read message...
//    if ( /* message is an A message */)
//      return new MessageA(...);
//    else if ( /* message is a B message */)
//      return new MessageB(...);
    if (willDecode(msg)) {
      return JSON.parseObject(msg, Message.class);
    } else {
      throw new DecodeException(msg, "[Message] Can't decode.");
    }
  }

  @Override
  public boolean willDecode(String msg) {
    // Determine if the message can be converted into either a
    // MessageA object or a MessageB object...
    Message m = JSON.parseObject(msg, Message.class);
    return m != null;
  }
}
TOP

Related Classes of cn.dreampie.web.websocket.MessageDecoder

TOP
Copyright © 2018 www.massapi.com. 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.