Ejemplo n.º 1
0
 @Override
 public void initialize(final URL url, final ResourceBundle bundle) {
   exitItem.setOnAction(e -> Platform.exit());
   roomSelection.setItems(FXCollections.observableArrayList("arduino", "java", "groovy", "scala"));
   roomSelection.getSelectionModel().select(1);
   model.userName.bindBidirectional(userNameTextfield.textProperty());
   model.roomName.bind(roomSelection.getSelectionModel().selectedItemProperty());
   model.readyToChat.bind(
       model.userName.isNotEmpty().and(roomSelection.selectionModelProperty().isNotNull()));
   chatButton.disableProperty().bind(model.connected.not());
   messageTextField.disableProperty().bind(model.connected.not());
   messageTextField.textProperty().bindBidirectional(model.currentMessage);
   connectButton.disableProperty().bind(model.readyToChat.not());
   chatListView.setItems(model.chatHistory);
   messageTextField.setOnAction(
       event -> {
         handleSendMessage();
       });
   chatButton.setOnAction(
       evt -> {
         handleSendMessage();
       });
   connectButton.setOnAction(
       evt -> {
         try {
           clientEndPoint =
               new ChatClientEndpoint(
                   new URI("ws://quevedo2dam.azurewebsites.net/chat/" + model.roomName.get()));
           clientEndPoint.addMessageHandler(
               responseString -> {
                 Platform.runLater(
                     () -> {
                       model.chatHistory.add(
                           jsonMessageToString(responseString, model.roomName.get()));
                     });
               });
           model.connected.set(true);
         } catch (Exception e) {
           showDialog("Error: " + e.getMessage());
         }
       });
   aboutMenuItem.setOnAction(
       event -> {
         showDialog(
             "Example websocket chat bot written in JavaFX.\n\n Please feel free to visit my blog at www.hascode.com for the full tutorial!\n\n2014 Micha Kops");
       });
 }
Ejemplo n.º 2
0
  /**
   * This is the Original ChatBot main method
   *
   * @param arg
   * @throws Exception
   */
  public static void main(String... arg) throws Exception {
    //        ChatLoadClient code
    //        String host=ChatBot.host;
    //        int port=ChatBot.port;0
    //        int clients=ChatBot.clients;
    //        int mesgs=ChatBot.messages;
    //        int idleTime = ChatBot.idleTime;
    String host = arg.length > 0 ? arg[0] : "localhost";
    int port = arg.length > 1 ? Integer.parseInt(arg[1]) : 8081;
    int clients = arg.length > 2 ? Integer.parseInt(arg[2]) : 1000;
    int messages = arg.length > 3 ? Integer.parseInt(arg[3]) : 400;
    int idleTime = 30000;

    // Create client serially
    start = System.currentTimeMillis();
    ChatClientEndpoint[] chat = new ChatClientEndpoint[clients];
    for (int i = 0; i < chat.length; i++) {
      chat[i] = new ChatClientEndpoint(new URI("ws://" + host + ":" + port + "/"), "user " + i);
      members.add(chat[i]);
      connections++;
    }
    while (members.size() < clients) {
      if (System.currentTimeMillis() > (start + idleTime)) break;
      Thread.sleep(10);
    }
    end = System.currentTimeMillis();
    conxTime = end - start;
    System.err.printf(
        "Opened %d of %d connections to %s:%d in %dms\n",
        members.size(), clients, host, port, conxTime);

    // Send messages
    Random random = new Random();
    start = System.currentTimeMillis();
    // received.set(0);
    for (int i = 0; i < messages; i++) {
      ChatClientEndpoint c = chat[random.nextInt(chat.length)];
      String msg = "Hello random " + random.nextLong();
      // c.send(msg);
      c.send(msg);
      sent.incrementAndGet();
    }

    long last = 0;
    long progress = start;
    while (received.get() < (clients * messages)) {

      if (System.currentTimeMillis() > (progress + idleTime)) break;
      if (received.get() != last) {
        progress = System.currentTimeMillis();
        last = received.get();
      }
      Thread.sleep(50);
    }

    end = System.currentTimeMillis();
    rxTime = end - start;
    System.err.printf(
        "Sent/Received %d/%d messages in %dms: %dmsg/s\n",
        sent.get(), received.get(), rxTime, (received.get() * 1000) / rxTime);

    // Close all connections

    start = System.currentTimeMillis();
    for (int i = 0; i < chat.length; i++) {
      // chat[i].disconnect();
      chat[i].userSession.close();
      members.remove(chat[i]);
    }

    while (members.size() > 0) {
      if (System.currentTimeMillis() > (start + idleTime)) break;
      Thread.sleep(10);
    }
    end = System.currentTimeMillis();

    System.err.printf(
        "Closed %d connections to %s:%d in %dms\n", clients, host, port, (end - start));

    /** ******************************* */

    /*while (true) {
        clientEndPoint.sendMessage(getMessage("Hi There!!"));
        Thread.sleep(30000);
    }*/
  }
Ejemplo n.º 3
0
 private void handleSendMessage() {
   clientEndPoint.sendMessage(
       stringToJsonMessage(model.userName.get(), model.currentMessage.get()));
   model.currentMessage.set("");
   messageTextField.requestFocus();
 }