Access golang websocket server with clientjs client node

I am new to NodeJS. Suppose I have an echo server implemented with the Golang web package package:

package main

import (
    "code.google.com/p/go.net/websocket"
    "log"
    "net / http"
)

func EchoServer (ws * websocket.Conn) {
    var msg string
    websocket.Message.Receive (ws, & msg)
    log.Printf ("Message Got:% s \ n", msg)
    websocket.Message.Send (ws, msg)
}

func main () {
    http.Handle ("/ echo", websocket.Handler (EchoServer))
    err: = http.ListenAndServe (": 8082", nil)
    if err! = nil {
        panic (err.Error ())
    }
}

What does nodejs client code look like?

+5
source share
2 answers

, - , . :

var WebSocketClient = require('websocket').client;

var client = new WebSocketClient();

client.on('connectFailed', function(error) {
    console.log('Connect Error: ' + error.toString());
});

client.on('connect', function(connection) {
    console.log('WebSocket client connected');
    connection.on('error', function(error) {
        console.log("Connection Error: " + error.toString());
    });
    connection.on('close', function() {
        console.log('echo-protocol Connection Closed');
    });
    connection.on('message', function(message) {
        if (message.type === 'utf8') {
            console.log("Received: '" + message.utf8Data + "'");
        }
    });

    connection.sendUTF("Hello world");
});

client.connect('ws://127.0.0.1:8082/echo', "", "http://localhost:8082");

, WebsocketClient lib/WebSocketCLient.js. ( 299-300 ):

        //this.failHandshake("Expected a Sec-WebSocket-Protocol header.");
        //return;

- websocket "Sec-Websocket-Protocol", , , . , , , -.

Go:

package main

import (
    "fmt"
    "code.google.com/p/go.net/websocket"
)

const message = "Hello world"

func main() {
    ws, err := websocket.Dial("ws://localhost:8082/echo", "", "http://localhost:8082")
    if err != nil {
        panic(err)
    }
    if _, err := ws.Write([]byte(message)); err != nil {
        panic(err)
    }
    var resp = make([]byte, 4096)
    n, err := ws.Read(resp)
    if err != nil {
        panic(err)
    }
    fmt.Println("Received:", string(resp[0:n]))
}
+7

WebSocket- Node, , WebSocket- Node, .

connect(). , JavaScript ( ), .

+18

All Articles