1 package org.oxerr.okcoin.websocket;
2
3 import java.io.IOException;
4 import java.io.Writer;
5
6 import javax.json.Json;
7 import javax.json.stream.JsonGenerator;
8 import javax.websocket.EncodeException;
9 import javax.websocket.Encoder;
10 import javax.websocket.EndpointConfig;
11
12 import org.oxerr.okcoin.websocket.dto.Event;
13
14 public class OKCoinEncoder implements Encoder.TextStream<Event> {
15
16
17
18
19 @Override
20 public void init(EndpointConfig config) {
21 }
22
23
24
25
26 @Override
27 public void destroy() {
28 }
29
30
31
32
33 @Override
34 public void encode(Event message, Writer writer) throws EncodeException,
35 IOException {
36 JsonGenerator g = Json.createGenerator(writer);
37 g.writeStartObject()
38 .write("event", message.getEvent())
39 .write("channel", message.getChannel());
40
41 if (!message.getParameters().isEmpty()) {
42 g.writeStartObject("parameters");
43 message.getParameters().forEach((k, v) -> g.write(k, v));
44 g.writeEnd();
45 }
46
47 g.writeEnd();
48 g.flush();
49 }
50
51 }