1
0
mirror of https://github.com/bingohuang/docker-labs.git synced 2025-07-15 02:37:27 +08:00

Merge pull request #22 from franela/transport_preference

Change connection preferrence so it tries with WS first and the polling
This commit is contained in:
Jonathan Leibiusky 2016-11-13 06:36:14 +02:00 committed by GitHub
commit f49f0d8ce0
6 changed files with 20 additions and 10 deletions

View File

@ -9,7 +9,11 @@ A live version is available at: http://play-with-docker.com/
## Requirements ## Requirements
Docker 1.12.1 or higher is required. Docker 1.13+ is required. You can use docker-machine with the following command:
```
docker-machine create -d virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v1.13.0-rc1/boot2docker.iso <name>
```
## Installation ## Installation

View File

@ -1,6 +1,10 @@
package services package services
import "github.com/googollee/go-socket.io" import (
"log"
"github.com/googollee/go-socket.io"
)
type ViewPort struct { type ViewPort struct {
Rows uint Rows uint
@ -41,7 +45,10 @@ func NewClient(so socketio.Socket, session *Session) *Client {
// Resize all terminals in the session // Resize all terminals in the session
wsServer.BroadcastTo(session.Id, "viewport resize", vp.Cols, vp.Rows) wsServer.BroadcastTo(session.Id, "viewport resize", vp.Cols, vp.Rows)
for _, instance := range session.Instances { for _, instance := range session.Instances {
instance.ResizeTerminal(vp.Cols, vp.Rows) err := instance.ResizeTerminal(vp.Cols, vp.Rows)
if err != nil {
log.Println("Error resizing terminal", err)
}
} }
}) })
so.On("disconnection", func() { so.On("disconnection", func() {

View File

@ -27,7 +27,7 @@ func GetContainerInfo(id string) (types.ContainerJSON, error) {
} }
func CreateNetwork(name string) error { func CreateNetwork(name string) error {
opts := types.NetworkCreate{} opts := types.NetworkCreate{Driver: "overlay", Attachable: true}
_, err := c.NetworkCreate(context.Background(), name, opts) _, err := c.NetworkCreate(context.Background(), name, opts)
if err != nil { if err != nil {

View File

@ -39,11 +39,10 @@ func getDindImageName() string {
func NewInstance(session *Session) (*Instance, error) { func NewInstance(session *Session) (*Instance, error) {
log.Printf("NewInstance - using image: [%s]\n", dindImage) log.Printf("NewInstance - using image: [%s]\n", dindImage)
instance, err := CreateInstance(session.Id, dindImage) instance, err := CreateInstance(session.Id, dindImage)
instance.Session = session
if err != nil { if err != nil {
return nil, err return nil, err
} }
instance.Session = session
if session.Instances == nil { if session.Instances == nil {
session.Instances = make(map[string]*Instance) session.Instances = make(map[string]*Instance)
@ -66,8 +65,8 @@ func (s *sessionWriter) Write(p []byte) (n int, err error) {
return len(p), nil return len(p), nil
} }
func (i *Instance) ResizeTerminal(cols, rows uint) { func (i *Instance) ResizeTerminal(cols, rows uint) error {
ResizeExecConnection(i.ExecId, i.Ctx, cols, rows) return ResizeExecConnection(i.ExecId, i.Ctx, cols, rows)
} }
func (i *Instance) Exec() { func (i *Instance) Exec() {

View File

@ -42,7 +42,7 @@ func init() {
} }
func CreateWSServer() *socketio.Server { func CreateWSServer() *socketio.Server {
server, err := socketio.NewServer(nil) server, err := socketio.NewServer([]string{"websocket", "polling"})
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }

View File

@ -68,7 +68,7 @@
method: 'GET', method: 'GET',
url: '/sessions/' + $scope.sessionId, url: '/sessions/' + $scope.sessionId,
}).then(function(response) { }).then(function(response) {
var socket = io({path: '/sessions/' + sessionId + '/ws'}); var socket = io({path: '/sessions/' + sessionId + '/ws', transports: ['websocket', 'polling']});
socket.on('terminal out', function(name, data) { socket.on('terminal out', function(name, data) {
var instance = $scope.idx[name]; var instance = $scope.idx[name];