全新的 Go .. 显然仍在学习语法和基础知识.. 但我确实有一个特定的目标..
我试图在 :8080 上建立一个简单的服务器,它可以响应 HTTP 和 socket.io(通过/socket.io/url),特别是 CORS。
我的代码:
package main
import (
"log"
"net/http"
"github.com/rs/cors"
"github.com/googollee/go-socket.io"
)
func SayHelloWorld(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello, World!"))
}
func main() {
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
AllowCredentials: true,
})
server, err := socketio.NewServer(nil)
if err != nil {
log.Fatal(err)
}
server.On("connection", func(so socketio.Socket) {
log.Println("on connection")
so.Join("chat")
so.On("chat message", func(msg string) {
log.Println("emit:", so.Emit("chat message", msg))
so.BroadcastTo("chat", "chat message", msg)
})
so.On("disconnection", func() {
log.Println("on disconnect")
})
})
server.On("error", func(so socketio.Socket, err error) {
log.Println("error:", err)
})
http.Handle("/socket.io/", c.Handler(server))
http.HandleFunc("/", SayHelloWorld)
log.Println("Serving at localhost:8080...")
log.Fatal(http.ListenAndServe(":8080", nil))
}
在客户端,我仍然看到:
与“wss://api.domain.com/socket.io/?EIO=3&transport=websocket&sid=xNWd9aZvwDnZOrXkOBaC”的 WebSocket 连接失败:在建立连接之前 WebSocket 已关闭。
(index):1 XMLHttpRequest 无法加载https://api.domain.com/socket.io/?EIO=3&transport=polling&t=1420662449235-3932&sid=xNWd9aZvwDnZOrXkOBaC。请求的资源上不存在“Access-Control-Allow-Origin”标头。Origin ' http://fiddle.jshell.net ' 因此不允许访问。
编辑#1:
所以我一直在努力理解为什么我无法连接.. 遇到了一个更令人困惑的难题?
https://gist.github.com/acoyfellow/167b055da85248c94fc4
上面的gist是我的golang服务器的代码+用于连接的浏览器代码..这段代码每秒会向后端发送30个HTTP GET请求,没有连接、升级或给出任何错误(客户端或服务器端)。它本质上是我自己的 DDOS 后端?
有人,请有人告诉我我在做一些愚蠢的事情..这真是泡菜:P
阿晨1998
收到一只叮咚
相关分类