socket

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2016 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package socket is client of `golang.org/x/tools/playground/socket`.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Conn *websocket.Conn

	Stdout io.Writer
	Stderr io.Writer
}

Client represents client of go playground socket server.

Example
package main

import (
	"fmt"
	"log"
	"net"
	"net/http"
	"net/url"

	"golang.org/x/net/websocket"
	"golang.org/x/tools/playground/socket"
)

const origin = "http://127.0.0.1/"

const code = `
package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界!")
}
`

func main() {
	// Serve websocket playground server
	addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
	if err != nil {
		log.Fatal(err)
	}
	l, err := net.ListenTCP("tcp", addr)
	if err != nil {
		log.Fatal(err)
	}
	defer l.Close()
	mu := http.NewServeMux()

	u, err := url.Parse(fmt.Sprintf("http://%s", l.Addr()))
	if err != nil {
		log.Fatal(err)
	}
	mu.Handle("/", socket.NewHandler(u))
	s := http.Server{Handler: mu}
	go s.Serve(l)

	url := fmt.Sprintf("ws://%s/", l.Addr())

	config, err := websocket.NewConfig(url, origin)
	if err != nil {
		log.Fatal(err)
	}
	ws, err := websocket.DialConfig(config)
	if err != nil {
		log.Fatal(err)
	}
	cli := &Client{Conn: ws}
	cli.Run(code)
}
Output:

Hello, 世界!

func (*Client) Run

func (c *Client) Run(code string) error

Run runs code on connected go playground websocket server.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL