Go
文章平均质量分 83
IT 哈
这个作者很懒,什么都没留下…
展开
-
Go WebSocket 实现聊天室
Go WebSocket 实现 聊天demo转载 2022-09-22 16:14:16 · 1259 阅读 · 0 评论 -
Go:用 kqueue 实现一个简单的 TCP Server
Go:用 kqueue 实现一个简单的 TCP Server转载 2022-07-19 09:47:27 · 765 阅读 · 0 评论 -
Golang ServeMux 是如何实现多路处理的
之前出于好奇看了一下 Golang net/http 包下的部分源码,今天想还是总结一下吧。由于是第一次写文章且抱着忐忑的心情发表,可能有些语义上的不清楚,谅解一下,或者提出修改的建议!简介net/http 包里的 server.go 文件里注释写着:ServeMux is an HTTP request multiplexer. 即 ServeMux 是一个 HTTP 请求的 “多路处理器”,因为 ServeMux 实现的功能就是将收到的 HTTP 请求的 URL 与注册的路由相匹配,选择匹配度最转载 2022-02-15 12:08:31 · 1016 阅读 · 0 评论 -
golang的值接收者和指针接收者的区别
golang的值接收者和指针接收者的区别方法值接收者和指针接收者两者分别在何时使用方法方法能给用户自定义的类型添加新的行为。方法和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接收者,也可以是指针接收者。我们在调用方法的时候,值类型既可以调用值接收者的方法,也可以调用指针接收者的方法;指针类型既可以调用指针接收者的方法,也可以调用值接收者的方法。也就是说,不管方法的接收者是什么类型,该类型的值和指针都可以调用,不必严格符合接收者的类型。下面的转载 2021-09-12 20:32:06 · 517 阅读 · 0 评论 -
Go基础系列:Go中的方法
Go方法简介Go中的struct结构类似于面向对象中的类。面向对象中,除了成员变量还有方法。Go中也有方法,它是一种特殊的函数,定义于struct之上(与struct关联、绑定),被称为struct的receiver。它的定义方式大致如下:1234type mytype struct{}func (recv mytype) my_method(para) return_type {}func (recv *mytype) my_method(para) return_type转载 2021-09-10 09:35:11 · 785 阅读 · 0 评论 -
Go netpoller 原生网络模型之源码全面揭秘
导言Go 基于 I/O multiplexing 和 goroutine scheduler 构建了一个简洁而高性能的原生网络模型(基于 Go 的 I/O 多路复用netpoller),提供了goroutine-per-connection这样简单的网络编程模式。在这种模式下,开发者使用的是同步的模式去编写异步的逻辑,极大地降低了开发者编写网络应用时的心智负担,且借助于 Go runtime scheduler 对 goroutines 的高效调度,这个原生网络模型不论从适用性还是性能上都足以满...转载 2021-09-09 09:57:35 · 3806 阅读 · 0 评论 -
一百万个 WebSockets 和 Go
嗨,大家好!我叫 Sergey Kamardin,是 Mail.Ru 的一名开发人员。这篇文章是关于我们如何用 Go 开发高负载的 WebSocket 服务器。如果您熟悉 WebSockets,但对 Go 知之甚少,我希望您仍然会发现这篇文章在性能优化的思想和技术方面很有趣。一、简介为了定义我们故事的上下文,应该就我们为什么需要这个服务器说几句话。Mail.Ru 有很多有状态的系统。用户电子邮件存储就是其中之一。有多种方法可以跟踪系统内的状态变化以及系统事件。这主要是通过...转载 2021-09-09 09:51:55 · 384 阅读 · 0 评论 -
Go 语言: 空接口 interface{}
空接口interface{}类似 Java 中的 Object 类型。任何变量都可以赋值给interface{}类型的变量。代码示例:package mainimport "fmt"func main() { var a interface{} = 8 fmt.Printf("%T %v\n", a, a) a = 1.26 fmt.Printf("%T %v\n", a, a) a = "Hello" fmt.Printf("%..转载 2021-08-19 20:58:35 · 350 阅读 · 0 评论 -
Golang的Tag语法
我们可以通过Tag来增强结构体的定义,Tag会带上一些meta信息,在本文中我们将通过几个例子来深入了解Tag的用法。结构Struct是由一组field组成,每个field包括了名字(可选)和字段类型package mainimport "fmt"type T1 struct { f1 string}type T2 struct { T1 f2 int64 f3, f4 float64}func main() { t := T2{T1转载 2021-08-16 08:52:17 · 713 阅读 · 0 评论 -
Go netpoller 原生网络模型之源码全面揭秘
导言Go 基于 I/O multiplexing 和 goroutine scheduler 构建了一个简洁而高性能的原生网络模型(基于 Go 的 I/O 多路复用netpoller),提供了goroutine-per-connection这样简单的网络编程模式。在这种模式下,开发者使用的是同步的模式去编写异步的逻辑,极大地降低了开发者编写网络应用时的心智负担,且借助于 Go runtime scheduler 对 goroutines 的高效调度,这个原生网络模型不论从适用性还是性能上都足以满...转载 2021-05-05 10:17:17 · 348 阅读 · 0 评论 -
如何运行github上的Golang项目
对于golang新手来说,经常会出现无法编译一个github上的项目,主要原因是http://golang.org域名被墙,导致无法正常下载依赖项,另外go module还有GOPATH等一些概念不熟悉导致的。本人以http://github.com/langhuihui/monibuca为例,画了一个图,帮助初学者快速顺利启动一个项目。转自https://zhuanlan.zhihu.com/p/141181279...转载 2020-07-13 15:11:55 · 5976 阅读 · 0 评论 -
游戏服务端开源引擎GoWorld教程——(3)手把手写一个聊天室
看完示例,接着开始写代码。本节完成的功能是从零开始搭建一个简单的聊天室,包括服务端和Unity客户端两部分。界面如图,客户端点击链接登录,输入聊天内容,所有连接的客户端都能够在调试窗口中看到消息。系列文章罗培羽:游戏服务端开源引擎GoWorld教程—— (1)安装和运行罗培羽:游戏服务端开源引擎GoWorld教程——(2)Unity示例双端联调罗培羽:游戏服务端开源引擎GoWorld教程——(3)手把手写一个聊天室罗培羽:游戏服务端开源引擎GoWorld教程——(4)制作多频道聊天室转载 2020-06-24 16:43:11 · 1527 阅读 · 0 评论 -
深入剖析Go Web服务器实现原理
1. 前言对于Go语言来说,只需要短短几行代码,就可以实现一个简单的http server,加上协程的加持,Go实现的http server拥有非常优秀的性能。如下图所示:通过net/http标准库,我们可以启动一个http服务器,然后让这个服务器接收请求并返回响应。net/http标准库还提供了一个连接多路复用器(multiplexer)的接口以及一个默认的多路复用...转载 2020-04-02 16:48:49 · 675 阅读 · 0 评论 -
Golang 游戏架构简介
一、参考游戏服务器架构通识早期网游服务器早期游戏服务器的改进版本按照功能划分多个服务器进程按照场景划分多个服务器进程对游戏服务器历史有了基本了解后,成熟形态的游戏服务器很容易理解。简单来说,就是把逻辑服务器单个进程的压力分摊到多个服务器。难点在逻辑的设计上,要像做手术一样把本来是一体的功能切开,并抽象出若干个API来保持联系(服务器之间是TCP...转载 2020-04-02 09:58:21 · 5126 阅读 · 2 评论 -
[开源]实现一个简易的Unity网络同步引擎——netgo
目录数据通信格式 定义proto文件 生成c#和golang API接口文件 服务端网络模型 客户端代码结构 相关概念 数据同步 Custom Event 接口介绍 房间相关接口 Player相关接口 CustomEvent接口 View Sync RPC Demo演示 服务端部署 客户端编译安装 功能测试 Road Ma...转载 2020-01-10 14:13:26 · 868 阅读 · 1 评论 -
gnet: 一个轻量级且高性能的 Go 网络框架
GitHub 主页https://github.com/panjf2000/gnet欢迎大家围观 ~~,目前还在持续更新,感兴趣的话可以 star 一下暗中观察哦。???? 简介gnet是一个基于事件驱动的高性能和轻量级网络框架。它直接使用epoll和kqueue系统调用而非标准 Golang 网络包:net来构建网络应用,它的工作原理类似两个开源的网络库:netty和l...转载 2019-11-17 13:04:00 · 6069 阅读 · 0 评论 -
Leaf 游戏服务器框架简介
Leaf 游戏服务器框架简介 Leaf 的模块机制 Leaf 源码概览 使用 Leaf 开发游戏服务器 Hello Leaf Leaf 模块详解 Leaf ChanRPC Leaf Go Leaf timer Leaf log Leaf recordfile 了解更多 Leaf 游戏服务器框架简介Leaf 是一个由 Go 语...转载 2019-11-17 12:35:55 · 2049 阅读 · 1 评论 -
A Million WebSockets and Go
A Million WebSockets and Goby Sergey KamardinHi everyone! My name is Sergey Kamardin and I’m a developer at Mail.Ru.This article is about how we developed the high-load WebSocket server with G...转载 2019-11-14 17:07:20 · 378 阅读 · 0 评论 -
【Zinx第一章-引言】Golang轻量级并发服务器框架
inx源代码githubhttps://github.com/aceld/zinxgitee码云https://gitee.com/Aceld/zinx在线开发教程【B站】zinx视频教程-Golang轻量级TCP服务器框架-适合自学者【YouTube】zinx开发YouTube中国版【Zinx教程目录】完整教程电子版(在线高清)-下载Zinx框架视频教程(框架篇)(完整版下载)...转载 2019-11-14 16:34:02 · 354 阅读 · 0 评论