2017-04-09 3 views
0

Konzentriert sich nur auf die clientseitige API (da jede serverseitige Sprache über eine eigene API verfügt), öffnet das folgende Snippet eine Verbindung, erstellt Ereignislistener für Verbindungs-, Verbindungs- und Nachrichtenereignisse. sendet eine Nachricht zurück an den Server und schließt die Verbindung mit WebSocket.JavaScript - ReferenceError: WebSocket ist nicht definiert

// Create a socket instance 
var socket = new WebSocket('ws://localhost:3000'); 

// Open the socket 
socket.onopen = function(event) { 

    // Send an initial message 
    socket.send('I am the client and I\'m listening!'); 

    // Listen for messages 
    socket.onmessage = function(event) { 
     console.log('Client received a message',event); 
    }; 

    // Listen for socket closes 
    socket.onclose = function(event) { 
     console.log('Client notified socket has closed',event); 
    }; 

    // To close the socket.... 
    socket.close() 

}; 

Aber ich erhalte eine Fehlermeldung oben auf die Ausführung Snippet:

ReferenceError: WebSocket is not defined

ich durch verschiedene Links gegangen sind, wie https://davidwalsh.name/websocket, wie WebSockets zu implementieren. Aber keiner von ihnen importiert npm Paket.

Frage: Also, wie WebSockets (Client Side AngularJS) zu implementieren? Was fehlt mir hier?

+1

Wie @Brad Ihre Frage erwähnt Client-seitig. Für Serverside würde ich [Socket.io] (https://socket.io/) empfehlen, das auch einen Beispielcode hat. Sowohl serverseitig als auch clientseitig – Templum

+0

Danke @Templum. Ich habe kurz an Socket.io gearbeitet Ich möchte WebSockets lernen. – kshikhar

+0

Stellen Sie sicher, dass Sie den Code im Browser ausführen und nicht in NodeJS, verwenden Sie auch einen modernen [Browser] (https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API), der ihn unterstützt –

Antwort

1

Der Code, auf den Sie in Ihrer Frage verweisen, ist clientseitiger Code. WebSocket ist direkt in Browsern verfügbar.

Sehen Sie sich für Ihren serverseitigen Node.js-Code die ws NPM package an.

So, how to implement WebSockets (client side) on NodeJS?

Sie nicht. Node.js ist serverseitig, nicht clientseitig.

+0

Er kann es immer noch benutzen, um sich als Client zu verbinden, er braucht nur das richtige Modul dafür –

+0

@OmriLuzon Offensichtlich, aber das ist nicht wirklich die Frage, obwohl es so formuliert ist. Die Fehlermeldung zeigt deutlich an, dass die Person versucht hat, clientseitigen Code mit Node.js auf dem Server auszuführen. – Brad

+0

Okay, deine Antwort macht Sinn. So dumm von mir. Aber wenn ich es auf der Client-Seite (AngularJS) verwenden würde, wie kann ich es dann machen? @Brad – kshikhar

-1

können Sie versuchen:

https://github.com/socketio/socket.io

wie zwischen Client und Server zu unterscheiden

+1

Socket.IO ist nicht analog zu Web Sockets. Es ist eine Bibliothek, die viel mehr bietet und nicht immer über einen Web-Socket-Transport. – Brad

Verwandte Themen