草庐IT

转发WebSocket

全部标签

Golang Gorilla Websocket 在 120 秒时停止接收信息

我目前正在尝试连接到CEX.IO比特币交易所的websocket,但不仅与CEX.IO有问题,与其他人也有问题。我的所有连接都在120秒左右下降,这让我觉得存在一些TTL问题。主包中的Process()goroutine最终只是挂起并等待来自readLoop的数据,而readLoop只是停止接收数据。我在代码中包含了一些只读APIkey,因此您可以根据需要进行测试。packagemainimport("fmt""bitbucket.org/tradedefender/cryptocurrency/exchange-connector/cexio""github.com/shopspri

go - websocket 消息可以被故意拆分吗?

我正在服务器上工作并完成了握手和基本的websocket取消屏蔽功能(服务器运行!)。我想知道如何测试我的片段处理代码。有没有一种方法可以使用chrome创建一个websocket,连接到我的本地服务器,然后将“hello”拆分为2个帧。我能够发送“你好”并在服务器上看到它。发送两次问候只是2strip有fin位的消息。 最佳答案 Gorillaclient当消息大小大于writebuffersize时发送碎片消息.AutoBahnTestSuite包括对碎片消息的测试。您可以使用GorillatestserverforAutoba

google-chrome - 当我从 chrome websocket 发送 127+ 个字符时,我的 golang 服务器不能看到超过 126 个

我正在重新发明轮子并尝试使用位来实现一个简单的服务器。它几乎可以正常工作,但我不确定这个问题是我的客户端还是我的服务器。这是我从net.ConnRead传递结果字节数组的函数funcreadWsFrame(p[]byte){//processfirstbyteb:=p[0]fmt.Printf("firstbyte:%b\n",b)fin:=b&128//hopefully128,forfinop:=b&15//hopefully1,fortextfmt.Printf("fin:%d\nop:%d\n",fin,op)//processsecondbyteb=p[1]fmt.Print

go - 将一个客户端的消息反射(reflect)到 Websocket (golang) 上的另一个客户端

我在后端使用websockets时遇到问题。我必须用golang和旧开发人员使用websocket重写一些旧的,同时一个客户端跟踪另一个客户端的位置。两个客户端都使用给定的url连接websocket"\(URLConstants.webSocketURL)?token=\(token)&jobId=\(jobId)"所以我认为两个客户端都使用她/他自己的token连接websocket,我需要将用户的消息反射(reflect)给其他用户。我可以用给定的url打开两个套接字。这是我第一次使用websocket,所以我不确定我问的问题是否正确。 最佳答案

go - 获取 websocket session

我的思路如下。当请求来自客户端(浏览器)的连接时,服务器在websocket升级请求上生成随机token并通过HTTPSet-Cookieheader发送它。然后,客户端通过websocket连接通过质询-响应身份验证进行身份验证。成功验证后,服务器会在数据库中为用户保存先前生成的token。当用户重新启动websocket连接时,需要tokencookie来恢复session。我的问题是,如何在每个连接(每个用户)的内存中临时存储token,以便我以后可以访问它并为该用户保存在数据库中?(类似于“请求上下文”)。 最佳答案 你可以

Gorilla Websocket 手动关闭客户端连接

我尝试关闭连接手册(使用DarkWebSocketTerminal),但客户端告诉我1005(无状态Rcvd)服务器:ReadLoop:for{mt,message,err:=c.ReadMessage()iferr!=nil{log.Println("read:",err)log.Println("messageType:",mt)ifwebsocket.IsUnexpectedCloseError(err,websocket.CloseGoingAway,websocket.CloseAbnormalClosure){log.Printf("error:%v",err)}c.Wri

go - 使 httputil.ReverseProxy 转发响应流正确

我的主Web服务器中有反向代理,专用于特定的微服务,并处理转发到其适当微服务的请求。funcnewTrimPrefixReverseProxy(target*url.URL,prefixstring)*httputil.ReverseProxy{director:=func(req*http.Request){//...trimsprefixfromrequestpathandprependsthepathofthetargeturl}return&httputil.ReverseProxy{Director:director}}这对于纯JSON响应非常有效,但最近我在尝试通过反向代理

sockets - Golang - 为到不同服务器的多个连接扩展 websocket 客户端

我有一个websocket客户端。实际上,它比下面显示的基本代码复杂得多。我现在需要扩展此客户端代码以打开到多个服务器的连接。最终,从服务器接收到消息时需要执行的任务是相同的。处理这个问题的最佳方法是什么?正如我上面所说,接收消息时执行的实际代码比示例中显示的要复杂得多。packagemainimport("flag""log""net/url""os""os/signal""time""github.com/gorilla/websocket")varaddr=flag.String("addr","localhost:1234","httpserviceaddress")funcm

go - 如何将一些事件更新从 http 处理程序发送到 WebSocket 处理程序

我是Go语言的新手,正在尝试了解channel。为了理清我的理解,我观看了视频教程,阅读了一些书籍,但在使用Go编写的Web应用程序中进行实际编码和channel使用时,我仍然感到困惑。我想要做的是拥有2个URL:显示或获取值的通常的正常GET或POSTURL和处理它。在后端做一些处理,我希望处理要在websocket更新中发送的输出URL,因此不需要窗口刷新/重新加载。基于Gorilla包的websocketsURL。以下是迄今为止我尝试过的测试代码,它仍然是我试图制定解决方案的困惑代码的精简版本://filemain.gopackagemainimport("io""net/htt

reactjs - 如何使用 Golang Gorilla/mux 托管并发 websocket 连接?

在此先感谢您的任何帮助或建议!我正在构建一个国际象棋应用程序,前端使用Reactjs,后端是使用Golillamux库用Golang编写的服务器。后端是一个供人类用户下棋的国际象棋引擎。React前端在顶级构造函数中创建与服务器的WebSocket连接。该应用程序适用于单个连接。但是,在打开第二个浏览器选项卡时,第一个浏览器选项卡的Websocket连接丢失。服务器报错,readerror:websocket:close1001(goingaway)然后,readerror:readtcp127.0.0.1:8081-\u003e127.0.0.1:64146:useofclosedn