当前位置: 首页 > 知识库问答 >
问题:

PHP:使用Golang处理websocket连接

柳坚白
2023-03-14

共有1个答案

澹台岳
2023-03-14

Go非常适合websocket服务器。我在Go中构建了websocket服务器,并对它的工作方式非常满意。我有一个在Go websocket服务器上每月处理30万用户的服务,它几乎不使用Amazon AWS微实例的1%CPU。再开心不过了。

为了最大化服务器资源,Websockets确实需要像Go和Node.js这样的事件驱动框架。像PHP这样的分叉web进程比事件驱动框架消耗更多的资源。

如果在某个时候需要从PHP调用Go,我建议使用API调用。尽管exec也可以工作。

 类似资料:
  • 我正在尝试将一个NodeJS脚本移植到第三方服务器,该脚本建立并维护一个Web套接字连接,以使用大猩猩/web套接字包进行Go。在Node脚本中,ping之后会收到一个pong,并且连接会无限期保持活动状态。在Go脚本中,ping/pong可以工作,但大约30秒后服务器会断开连接。 我怀疑使用Go websocket包发送的pings是错误的,但我不能确定这是什么原因。比较运行这些程序时捕获的加密

  • 问题内容: 我有一个棘手的聊天服务器文件 我使用Websocket进行连接,效果很好 我想要安全连接,因此我尝试使用SSL连接,但无法正常工作。 我的问题是 如何将Websocket与SSL连接连接 任何的想法? 问题答案: 如果您使用的是Apache Web服务器(2.4或更高版本),请在httpd.conf文件中启用以下模块: mod_proxy.so mod_proxy_wstunnel.s

  • 主要内容:检查网络可用性当在客户端和服务器之间建立了连接,就会从Web Socket实例触发事件。在通信期间发生的错误会生成错误。它是在事件的帮助下标记和处理的。在发生错误之后总是会终止连接。 当通信之间发生错误时会触发事件。事件之后是连接终止,这是一个关闭事件。 一个好的做法是始终告知用户意外错误并尝试重新连接它们。 在处理错误时,必须考虑内部和外部参数。 内部参数包括由于代码中的错误或意外的用户行为而可能生成的错误。

  • 问题内容: 我正在尝试构建一个简单的Golang / Appengine应用程序,该应用程序使用通道来处理每个http请求。原因是我希望每个请求都执行合理的大内存计算,并且以线程安全的方式执行每个请求(即,并发请求的计算不会混淆)非常重要。 本质上,我需要一个同步队列,该队列一次只能处理一个请求,并且通道看起来很自然。 是否可以将Go的缓冲通道用作线程安全队列? 但是,我无法让我简单的hello

  • 关于,endpoint文档说明: 当web套接字会话创建了某种未在web套接字协议中建模的错误时,开发人员可能会实现此方法。例如,这可能是传入消息太大而无法处理的通知,或者传入消息无法被编码。 此方法(当前)定义要处理的异常有许多类别: 如果发生错误,方法是否应该关闭websocket(调用)? 到目前为止,我认为我的责任是干净利落地关闭会话,并将关闭的原因告知客户。这就是为什么如果返回true,