Обновление go библиотеки websocket до последней версии - PullRequest
5 голосов
/ 21 февраля 2012

Я запускаю компилятор Go в Ubuntu, установленный с использованием sudo apt-get install golang

Я успешно скомпилировал и выполнил код для Тривиального примера сервера (См. http://golang.org/pkg/websocket/#Handler)

package main

import (
    "http"
    "io"
    "websocket"
)

// Echo the data received on the Web Socket.
func EchoServer(ws *websocket.Conn) {
    io.Copy(ws, ws);
}

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

Однако мне не удается подключиться к серверу с моей версией Chromium (16.0.912.77).Я предполагаю, что Chrome реализовал RFC 6455 Websocket (версия 13), но библиотека go websocket в пакете Ubuntu golang устарела.

Итак, мой вопрос: как можноЯ обновляю только пакет websocket до последней версии?

Ответы [ 2 ]

3 голосов
/ 21 февраля 2012

Последней версией пакета Go websocket является net/websocket по code.google.com/p/go.net/websocket, для которого требуется еженедельная версия Go 1 для разработки.

Для Ubuntu golang-weekly: Пакеты Ubuntu PPA дляGo .

Для еженедельной документации по выпуску для разработки: Go Programming Language .

2 голосов
/ 21 февраля 2012

Я думаю, что версия Go в репозитории пакетов Ubuntu, вероятно, r60.3 (или около того), которая сейчас немного устарела.Используйте последнюю неделю, измените код на:

package main

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

// Echo the data received on the Web Socket.
func EchoServer(ws *websocket.Conn) {
        io.Copy(ws, ws)
}

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

Кроме того, в пакете websocket s/ParseRequestURI/ParseRequest/, то, кажется, здесь работает. ( 1 )

Обновление : Извините, я написал / прочитал слишком быстро, кажется, что это не работает, на странице показано: "не протокол веб-сокета" (здесь бета-версия Chrome 18.0.1025.33 на 64b Ubuntu 10.04)

Обновление 2012-08-22 : Примечание выше ( 1 ) о редактировании пакета websocket больше не сохраняется.Тем временем пакет websocket был обновлен, и приведенный выше пример (основной) кода теперь компилируется без проблем.Во всяком случае, я не проверял, делает ли он потом то, что должен или нет, извините.

...