草庐IT

CONNECTION

全部标签

go - 如何捕获 "http: server closed idle connection"错误

在我的go应用程序中,我收到以下错误:“http:服务器关闭空闲连接”。我想捕获它并在遇到它时重试我的http连接。我发现这个错误来自“net/http”包,而且来自传输实现。特别是它定义了here我把它包裹在url.Error中,但这就是我能找到的全部。你知道我怎样才能真正捕捉到这个错误吗?编辑:我正在使用elasticsearchclient,它又使用net/http。我从客户端收到上述错误,并希望重试我的Elasticsearch请求,因为它是暂时的。现在我捕捉暂时性错误的方式是:ifurlErr,ok:=err.(*url.Error);ok&&(urlErr.Temporar

http - 戈朗 : strategies to prevent connection reset by peer errors

该程序同时生成许多goroutines(getStock),我相信这会导致远程服务器立即断开连接。我不是要创建DOS,但我仍然想在不出现“连接重置”错误的情况下积极获取数据。最多只能有N(例如20)个同时连接的策略是什么?golang的Http客户端有内置GET请求队列吗?我仍在学习,如果能了解是否有针对此类代码的更好设计模式,那就太好了。输出$goruns1w.gosl(size):1280body:"AAPL",17.92body:"GOOG",32.13body:"FB",42.02body:"AMZN",195.83body:"GOOG",32.13body:"AMZN",19

arrays - 通过 Golang 中的 Websocket 发送和接收 [][] 字节

我有一个二维字节数组:data:=[][]byte{{104,105},{104,105}}我需要通过websocket连接传输,但我没有找到一种方法来转换这个数组,因此我可以在我的java客户端上有效地将它重新转换回二维数组。funcsocketManager(connection*websocket.Conn){fmt.Print("Websocketconnectionestablished")//determiningtherequestfor{//awaitingmessagesfromclientsmessageType,message,err:=connection.Re

go - 异常大量的 TCP 连接超时错误

我正在使用GoTCP客户端连接到我们的GoTCP服务器。我能够连接到服务器并正确运行命令,但是在尝试连接到我们的TCP服务器或发送消息时,我的TCP客户端经常会报告异常大量的连续TCP连接错误一旦连接:dialtcpkubernetes_node_ip:exposed_kubernetes_port:connectex:Aconnectionattemptfailedbecausetheconnectedpartydidnotproperlyrespondafteraperiodoftime,orestablishedconnectionfailedbecauseconnectedho

postgresql - 连接 : connection timed out

我已经使用gosql包成功连接到Postgres数据库:...db,err:=sql.Open("postgres",connStr)然后我使用返回的数据库执行(长时间运行的)查询:rows,err:=db.Query(...)我得到了错误:dialtcpxx.xxx.xxx.xx:5432:connect:connectiontimedout我有几个问题:为什么连接超时?我能做些什么来防止它超时吗? 最佳答案 sql.Open()mayjustvalidateitsargumentswithoutcreatingaconnecti

Golang TCP 服务器 - 在客户端之间交换数据

我希望在go中实现一个TCP服务器,它应该能够从一个客户端接收数据并将其发送到另一个客户端。实现这一目标的正确方法是什么?我尝试了以下代码:astSrc:=*addr+":"+strconv.Itoa(*astPort)astListener,_:=net.Listen("tcp",astSrc)fmt.Printf("Listeningon%sforClientConnections.\n",astSrc)deferastListener.Close()pmsSrc:=*addr+":"+strconv.Itoa(*pmsPort)pmsListener,_:=net.Listen(

postgresql - 通过 pq 连接到 PostgreSQL 数据库返回 "bad connection"错误

我正在使用两台不同的计算机在Go和PostgreSQL中制作一个网络应用程序。两台计算机上的设置相同(Ubuntu与最新版本的Go和PostgreSQL)。问题是我无法让我的应用程序连接到笔记本电脑上的数据库。我使用这段代码:func(db*Database)Dial(userstring,passwordstring,dbnamestring){varerrerrordb.Conn,err=sql.Open("postgres","user="+user+"password="+password+"dbname="+dbname+"sslmode=require")iferr!=ni

go - 为什么 gorilla websocket 聊天示例没有发现必须使用 sync.RWMutex 来访问和编辑 map ?

在聊天示例中有一个名为hub.go的文件。https://github.com/gorilla/websocket/blob/master/examples/chat/hub.go我对该文件做了一些修改,它看起来像这样:typehubstruct{//Registeredconnections.connectionsmap[int64]*connectionsync.RWMutex//Inboundmessagesfromtheconnections.broadcastchan[]byte//Registerrequestsfromtheconnections.registerchan

arrays - 要从列表中添加或删除的 Golang 映射或结构

我有一个服务器,但我不想将每个连接都保存到一个列表中。比方说:typeConnectionstruct{Iduint16Conn*conn.TCP}varconnections[]Connection但是我想删除/获取特定的连接ID是什么?我应该使用什么?我在想这样的事情:funcGetConnectionById(iduint16)Connection{fork,v:=rangeconnections{ifv.Id==id{returnv}}}有没有更好的方法? 最佳答案 为什么不通过Id来识别映射中的每个Connection?p

debugging - 有什么方法可以获取 'http: response.WriteHeader on hijacked connection' 错误的堆栈跟踪?

我们的Web应用程序正在将大量“http:response.WriteHeaderonhijackedconnection”消息记录到stderr。有什么方法可以让http库输出堆栈跟踪或其他调试信息以及此消息(或将其升级为错误),以便追踪位置在我们的应用程序中会发生这种情况吗? 最佳答案 由于永远不会返回错误,并直接写入http.Server.ErrorLog,这是您唯一可以拦截它的地方。您可以在调试器中运行它并在该点中断,但如果在生产环境中运行,这可能没有用。您可以使用io.Writer创建一个新的*log.Logger,当它遇