草庐IT

WEBSOCKET

全部标签

node.js - 为什么 WebSocket 实现在传输多个文件时比 HTTP/2 Push 慢? (Node.js/围棋)

我一直在Node和Go中尝试使用WebSockets和HTTP/2库。我的基本设置是创建客户端和服务器,从服务器重复发送文件并测量时间,直到每个文件在客户端可用。令我惊讶的是,HTTP/2推送实现的性能明显优于WebSocket(总时间快5倍以上)。我做错了什么吗?我的GorillaWebSocket和node-ws以下服务器:开始packagemainimport("net/http""io/ioutil""log""github.com/gorilla/websocket")varfile[]bytevarupgrader=websocket.Upgrader{ReadBuffer

http - 在 Go 中使用 HTTP 与使用 TCP 套接字将文件下载/上传到服务器有什么优势?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我正在为社交网络应用程序设置多个服务器,之前从未使用过HTTP。使用HTTP而不是为TCP流创建自己的协议(protocol)有优势吗?它将用于普通文本传输和图像/视频。我已经启动了一个通用的TCP服务器,它可以传输小的有组织的文本数据包和较大的图像/视频流,但我不确定它是否像使用HTTP/s一样可扩展/高效/安全。我不打算发布代码,因为我希望这个问题足够笼统,不需要它,而且我还没有寻找代

go - 如何创建 golang 网络套接字聊天?

下午好。如何创建一个golang网络套接字聊天,能够向选定的用户发送消息,而不是向所有用户发送消息? 最佳答案 引用这个示例GO聊天应用:http://gary.burd.info/go-websocket-chat我去年对此进行了测试,效果很好。您可以查看代码以了解其工作原理。 关于go-如何创建golang网络套接字聊天?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/292

android - 如何将 Golang 和 Android 与 socket.io 连接起来?

我想使用socket.io将数据从Android发送到Golang。我用Nodejs正确地做到了但是现在,我想用Go来做。我找不到简单的示例。我该怎么做? 最佳答案 我假设您想要使用Socket.IO服务器库的Go实现,而不是标准的Node.js。如果是这样,您可以尝试googollee/go-socket.ioproject.这是项目页面中的示例:packagemainimport("log""net/http""github.com/googollee/go-socket.io")funcmain(){server,err:=s

go - 在 go 程序后台运行的 Websockets 导致 100% CPU 使用率

我在我的go程序中实现了网络套接字,以便在其他进程发生时定期在后台更新三个变量。自从这样做以来,程序几乎立即开始占用100%的CPU使用率,我不确定为什么。这里是有问题的代码:streamOneHandler:=func(event*websockets.Event){varOne,err=strconv.ParseFloat(event.Number,64)}streamTwoHandler:=func(event*websockets.Event){varTwo,err=strconv.ParseFloat(event.Number,64)}streamThreeHandler:=

go - 如何编码数据并在 websocket 上发送?

在调试服务器端代码时:typemyStructstruct{keystringvaluestring}key,value:=gen()data:=myStruct{key,value}myJSON,err:=json.Marshal(data)err=conn.WriteMessage(websocket.TextMessage,myJSON)gen()用字符串填充key和valuemyJSON显示:在websocket上写入myJSON后,客户端收到空的json:ws.onmessage=function(evt){console.log(evt.data)};为什么conn.Wri

go - 有什么办法可以防止默认的 golang 程序完成

我有一个使用websocket连接和数据库的服务器。有些用户可以通过套接字连接,所以我需要在数据库中增加他们的“在线”;在他们断开连接的那一刻,我也减少了他们在数据库中的“在线”字段。但如果服务器出现故障,我会使用在线用户的局部变量replicamap[string]int。所以我需要推迟服务器关闭,直到它完成一个数据库请求,该请求根据我的变量副本减少所有用户“在线”,因为在这种情况下套接字连接不会发送默认的“关闭”事件。我找到了一个包github.com/xlab/closer来处理一些系统调用并且可以在程序完成之前做一些Action,但是我的数据库请求不能以这种方式工作(下面的代码

go - 使用 gob 在 Go 中编码 websockets

我正在使用Go中的websockets编写一个聊天应用程序。将有多个聊天室,想法是将连接到聊天室的所有websocket存储在Redis列表中。为了在Redis中存储和检索websockets,我必须对它们进行编码/解码,并且(根据this问题)我认为我可以为此使用gob。我正在使用github.com/garyburd/redigo/redis作为Redis和github.com/gorilla/websocket作为我的websocket库。我的函数看起来像:funcaddWebsocket(roomstring,ws*websocket.Conn){conn:=pool.Get(

node.js - UDP 和网络套接字的数据丢失

我有以下场景:本地PC通过蓝牙以50.000位/秒的速度接收数据样本。数据通过UDP发送到某个服务器。服务器依次通过网页/JavaScript和网络套接字将数据分发到处理数据的已连接浏览器。最终,来自浏览器的结果通过UDP传回本地PC。到目前为止,我正在试验严格的本地设置,即一切都在一台拥有四核CPU的机器上运行。我已经用node.js和golang编写了服务器代码。在这两种情况下,都存在严重的数据丢失,即即使只有一个Web套接字客户端连接,也并非服务器成功接收到通过UDP发送的每个样本。造成损失的瓶颈在哪里?一切都在本地机器上运行是事实吗?会不会是websocket带宽太小了?使用W

Golang http : multiple response. WriteHeader 调用

这几天我在研究通过websoket发送消息,使用Beego框架。但是遇到错误信息http:multipleresponse.WriteHeadercalls问题出在哪里?任何提示都会很棒!func(this*WsController)Get(){fmt.Println("connected")handler(this.Ctx.ResponseWriter,this.Ctx.Request,this);conn,err:=upgrader.Upgrade(this.Ctx.ResponseWriter,this.Ctx.Request,nil)if_,ok:=err.(websocket