4

私は友達のプログラミングプロジェクトで作成しています。これを2つに分けて、クライアント(シンプルウィンドウアプリケーション)を担当し、サーバーを作りました。私はwebsocketの助けを借りて彼のサーバーにJSONオブジェクトを送信することになっています(彼は私に情報を与えてくれました、私が何を送るべきかhttp://pastebin.com/dmYBtN25)。私はjsonオブジェクトを作成する方法を知っていますが、私にとっての問題は、websocket libをjsonと組み合わせて使用​​する方法です(現在、weberknechtとjson-libを使用しています)。以下は、私のクライアントのベースになる可能性があると私が見つけた例です。ヒントやヘルプ、またはその方法の簡単な例を教えてください。

import java.net.URI;
import java.net.URISyntaxException;

import de.roderick.weberknecht.WebSocket;
import de.roderick.weberknecht.WebSocketConnection;
import de.roderick.weberknecht.WebSocketEventHandler;
import de.roderick.weberknecht.WebSocketException;
import de.roderick.weberknecht.WebSocketMessage;


public class App {
    public static void main(String[] args) {

    try {
        URI url = new URI("ws://127.0.0.1/test");
        WebSocket websocket = new WebSocketConnection(url);

        // Register Event Handlers

        websocket.setEventHandler(new WebSocketEventHandler() {
            public void onOpen() {
                System.out.println("--open");
            }

            public void onMessage(WebSocketMessage message) {
                System.out.println("--received message: "
                        + message.getText());
            }

            public void onClose() {
                System.out.println("--close");
            }
        });

        // Establish WebSocket Connection
        websocket.connect();

        // Send UTF-8 Text
        websocket.send("hello world");

        // Close WebSocket Connection
        websocket.close();
    } catch (WebSocketException wse) {
        wse.printStackTrace();
    } catch (URISyntaxException use) {
        use.printStackTrace();
    }
}

}

4

1 に答える 1

6

やってみました:

websocket.send("{\"firstName\": \"John\"}" /* stick your JSON here */);

JSONを作成する方法を知っている場合は、それを実行する必要があります。

google gsonを使用してJSONを作成する方法の例:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

/**
 * @author jadlr
 */
public class UserConnected {

private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();

private final int event;
private final String cookie;
private final From from;
private final Channel channel;

public UserConnected(int event, String cookie, From from, Channel channel) {
    this.from = from;
    this.cookie = cookie;
    this.event = event;
    this.channel = channel;
}

public int getEvent() {
    return event;
}

public String getCookie() {
    return cookie;
}

public From getFrom() {
    return from;
}

public String toJson() {
    return GSON.toJson(this, UserConnected.class);
}

public static class From {

    private final int id;
    private final String userId;

    public From(int id, String userId) {
        this.id = id;
        this.userId = userId;
    }

    public int getId() {
        return id;
    }

    public String getUserId() {
        return userId;
    }

}

public static class Channel {

    private final int id;
    private final String name;

    public Channel(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

}

public static void main(String[] args) {

    UserConnected userConnected = new UserConnected(0, "cookie123", new From(1, "user"), new Channel(1, "channel"));
    System.out.println(userConnected.toJson());

}

}
于 2012-10-18T16:05:00.240 に答える