Kann nicht herstellen einer WebSocket-Verbindung in JavaScript

Soll die Anwendung die Tabelle aktualisiert, wenn ein Antrag gestellt wird. Ich habe den folgenden code, um Benachrichtigungen vom server. Wenn ich die Anwendung ausführen, zeigt es Folgendes im alert-Boxen, scheint es angeschlossen ist aber wenn ich auf "senden" Methode der Benachrichtigung der Klasse es tut sich auch nichts ändern.

Alarm 1)

       windowfunction connect() {
            wsocket = new WebSocket("ws://localhost:8080/Notifications");
            alert("got connected");
            document.getElementById("foo").innerHTML = "arraypv[0]";
            wsocket.onmessage = onMessage;
        }

Alert 2)

      got connected 

JavaScript

 <script type="text/javascript">
            var wsocket;
            function connect() {
                wsocket = new WebSocket("ws://localhost:8080/Notifications");
                alert("got connected");
                wsocket.onmessage = onMessage;
            }
            function onMessage(evt) {
                alert(evt);
                var arraypv = evt;
                alert("array" + arraypv);
                document.getElementById("foo").innerHTML = arraypv[0];
            }
            alert("window" + connect);
            window.addEventListener("load", connect, false);
        </script>

Code

@ServerEndpoint("/Notifications")
public class Notifications {

   /* Queue for all open WebSocket sessions */
   static Queue<Session> queue = new ConcurrentLinkedQueue();


   public static void send() {
       System.err.println("send");
       String msg = "Here is the message";
      try {
         /* Send updates to all open WebSocket sessions */
         for (Session session : queue) {
            session.getBasicRemote().sendText(msg);
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
    }

   @OnOpen
    public void openConnection(Session session) {
        System.err.println("in open connection");
        queue.add(session);
    }

    @OnClose
    public void closedConnection(Session session) {
        System.err.println("in closed connection");
        queue.remove(session);
    }

    @OnError
    public void error(Session session, Throwable t) {
        System.err.println("in error");
        queue.remove(session);
    }
}

Maven

 <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0-b08</version>
        </dependency>

Eine Nachricht zu senden, ich verwende folgenden code in einer meiner Funktionen

     Notifications.send();

Konsole zeigt nur

SCHWERER: senden

Wenn ich trace die Verbindung mit FireBug zeigt es

Firefox can't establish a connection to the server at ws://localhost:8080/Notifications.
  • Eins kann ich bestätigen, dass das Problem mit Ihrem JS-client und nicht der server. Ich habe html 5 hier also nicht testen Sie Ihre JS, aber ich habe einen java-basierten client und dem server funktioniert gut.
  • Wie sind Sie mit dem öffnen der HTML-Datei? Es sollte gewartet werden, die durch einen webserver auf dem gleichen host wie Sie eine Verbindung herstellen möchten, um aus javascript-und nicht nur eröffnet, wie eine Datei von der DVD, oder anderes, führen Sie wahrscheinlich in den Sicherheitseinstellungen des browser.
  • Bei mir läuft es auf meinem localhost. Dann, wie um es zu testen, bevor die server?
InformationsquelleAutor Jack | 2014-05-13
Schreibe einen Kommentar