All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yy.androidlib.websocket.Message Maven / Gradle / Ivy

package com.yy.androidlib.websocket;

import android.util.Log;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;

public class Message {

    private String command;
    private Map headers = new HashMap();
    private String body;

    public static Message parse(String data) {
        Message message = new Message();
        try {
            BufferedReader reader = new BufferedReader(new StringReader(data));
            message.command = reader.readLine();
            String header;
            while ((header = reader.readLine()).length() > 0) {
                int ind = header.indexOf(':');
                String k = header.substring(0, ind);
                String v = header.substring(ind + 1, header.length());
                message.headers.put(k.trim(), v.trim());
            }
            StringBuffer body = new StringBuffer();
            int b;
            while ((b = reader.read()) != 0) {
                body.append((char) b);
            }
            message.body = body.toString();

        } catch (IOException e) {
            Log.e("STOMP", "parse message fail", e);
        }
        return message;
    }

    public String getCommand() {
        return command;
    }

    public void setCommand(String command) {
        this.command = command;
    }

    public Map getHeaders() {
        return headers;
    }

    public void setHeaders(Map headers) {
        this.headers = headers;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getDestination() {
        return getHeaders().get("destination");
    }

    public static String toRawString(Command c, String[] h, String b) {
        StringBuffer message = new StringBuffer(c.toString());
        message.append("\n");

        if (h != null) {
            for (int i = 0; i + 1 < h.length; i = i + 2) {
                message.append(h[i]);
                message.append(":");
                message.append(h[i + 1]);
                message.append("\n");
            }
        }

        message.append("\n");


        if (b != null) message.append(b);

        message.append("\000");


        return message.toString();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy