Search in sources :

Example 1 with Device

use of org.ecabrerar.examples.websockethome.model.Device in project javaee7-firstcup by ecabrerar.

the class DeviceSessionHandler method removeDevice.

public void removeDevice(int id) {
    Device device = getDeviceById(id);
    if (device != null) {
        devices.remove(device);
        JsonProvider provider = JsonProvider.provider();
        JsonObject removeMessage = provider.createObjectBuilder().add("action", "remove").add("id", id).build();
        sendToAllConnectedSessions(removeMessage);
    }
}
Also used : Device(org.ecabrerar.examples.websockethome.model.Device) JsonObject(javax.json.JsonObject) JsonProvider(javax.json.spi.JsonProvider)

Example 2 with Device

use of org.ecabrerar.examples.websockethome.model.Device in project javaee7-firstcup by ecabrerar.

the class DeviceSessionHandler method toggleDevice.

public void toggleDevice(int id) {
    JsonProvider provider = JsonProvider.provider();
    Device device = getDeviceById(id);
    if (device != null) {
        if ("On".equals(device.getStatus())) {
            device.setStatus("Off");
        } else {
            device.setStatus("On");
        }
        JsonObject updateDevMessage = provider.createObjectBuilder().add("action", "toggle").add("id", device.getId()).add("status", device.getStatus()).build();
        sendToAllConnectedSessions(updateDevMessage);
    }
}
Also used : Device(org.ecabrerar.examples.websockethome.model.Device) JsonObject(javax.json.JsonObject) JsonProvider(javax.json.spi.JsonProvider)

Example 3 with Device

use of org.ecabrerar.examples.websockethome.model.Device in project javaee7-firstcup by ecabrerar.

the class DeviceSessionHandler method addSession.

public void addSession(Session session) {
    sessions.add(session);
    for (Device device : devices) {
        JsonObject addMessage = createAddMessage(device);
        sendToSession(session, addMessage);
    }
}
Also used : Device(org.ecabrerar.examples.websockethome.model.Device) JsonObject(javax.json.JsonObject)

Example 4 with Device

use of org.ecabrerar.examples.websockethome.model.Device in project javaee7-firstcup by ecabrerar.

the class DeviceWebSocketServer method handleMessage.

@OnMessage
public void handleMessage(String message, Session session) {
    try (JsonReader reader = Json.createReader(new StringReader(message))) {
        JsonObject jsonMessage = reader.readObject();
        if ("add".equals(jsonMessage.getString("action"))) {
            Device device = new Device();
            device.setName(jsonMessage.getString("name"));
            device.setDescription(jsonMessage.getString("description"));
            device.setType(jsonMessage.getString("type"));
            device.setStatus("Off");
            sessionHandler.addDevice(device);
        }
        if ("remove".equals(jsonMessage.getString("action"))) {
            int id = (int) jsonMessage.getInt("id");
            sessionHandler.removeDevice(id);
        }
        if ("toggle".equals(jsonMessage.getString("action"))) {
            int id = (int) jsonMessage.getInt("id");
            sessionHandler.toggleDevice(id);
        }
    }
}
Also used : Device(org.ecabrerar.examples.websockethome.model.Device) StringReader(java.io.StringReader) JsonReader(javax.json.JsonReader) JsonObject(javax.json.JsonObject) ServerEndpoint(javax.websocket.server.ServerEndpoint) OnMessage(javax.websocket.OnMessage)

Aggregations

JsonObject (javax.json.JsonObject)4 Device (org.ecabrerar.examples.websockethome.model.Device)4 JsonProvider (javax.json.spi.JsonProvider)2 StringReader (java.io.StringReader)1 JsonReader (javax.json.JsonReader)1 OnMessage (javax.websocket.OnMessage)1 ServerEndpoint (javax.websocket.server.ServerEndpoint)1