001package var.web.ws.sensor;
002
003import java.io.IOException;
004import java.util.Random;
005
006import javax.websocket.RemoteEndpoint;
007import javax.websocket.Session;
008
009public class SensorSimulator extends Thread {
010        private Session session;
011        private Random random;
012        private double messwert;
013
014        public SensorSimulator(Session session) {
015                super();
016                this.session = session;
017                random = new Random();
018                messwert = 100.0;
019        }
020
021        public void notifyClient() throws IOException {
022                RemoteEndpoint.Basic client = session.getBasicRemote();
023                String message = String.format("%.2f", messwert);
024                client.sendText(message);
025        }
026
027        @Override
028        public void run() {
029                try {
030                        while (session != null && session.isOpen()) {
031                                sleep(random.nextInt(1000));
032                                if (random.nextBoolean()) {
033                                        messwert += 0.1;
034                                } else {
035                                        messwert -= 0.1;
036                                }
037                                notifyClient();
038                        }
039                } catch (InterruptedException | IOException e) {
040                        e.printStackTrace();
041                }
042        }
043}