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}