Go语言中文网 为您找到相关结果 303

模拟浏览器登录操作

近来想用Go做一点事,以减轻工作上的负担。 我的工作中有几项工作是每日重复的,大致内容: 1、将数据收集到Excel中。 2、收集齐后,将Excel中的部分数据提交到办公系统中(网页上操作)。 3、再将提交过后的审批号码提取出来,存入Excel中。 我现在有两个问题: 1、现在,上面的第一步Excel操作,Go中不知有何现成的库,若没有,我有个效率不高的办法。这个问题倒还不算急。 2、第二个问题比较着急。向办公系统提交数据,得先登录。我的操作步骤如下: 2.1、先访问办公系统首页,获取Session的Cookie。 2.2、进行登录数据提交,将刚才获取的这个Session的Cookie一并提交上去。 2.3、进行业务数据提交。 我现在的...阅读全文

关于GOLANG的chan

GOLANG CHAN chan是golang中非常重要的一个东西,用来做goroutine的通信,因为golang程序必然会有多个goroutine,如何同步这些goroutine就很重要了。 使用chan时有几个心得: 首先,永远是符号<-进行读取或者写入,譬如v,ok := <-c是读取,而c <- v是写入。 其次,读取时,如果没有ok,也是可以读取的。不过如果closed也是能读的,没有赋值而已;如果要知道是否closed得加ok,也就是除非chan永远不关闭,否则读取应该用v,ok := <-c而不是用v := <-c的方式。 再次,不能向closed的chan写入,所以一般写入时需要用一个信号的chan(一般buffer为1),来判断是否写入或者放弃,用select判断是写入成...阅读全文

博文 2016-08-17 14:00:03 winlinvip

Google 镜像站搜集

Google 镜像站搜集 Techzero • 2015-01-31 • 搜集整理 • 394,843 次阅读 • 166 条评论 在特殊的地方和特殊的时间,流畅顺利的打开一个网站也变得如此艰难。 2015.9.4 更新。 以下是直接使用谷歌的方法,如需科学上网请加入交流群53767380,本站交流群为336220319。 本文将不定期维护更新,删除不能用的,增加新的可用网址。欢迎 Ctrl+D 收藏。列表中有些打不开可能是 DNS污染 的原因,可以参考 DNS劫持 DNS污染 介绍 与 公共DNS 推荐 一文尝试解决。 以下镜像站分原版、非原版和智能跳转。非原版的界面有些改变,搜索结果依然与原版相同。智能跳转是在搜索时自动检测使用可用镜像进行搜索并展示结果。 如果您是以下镜像的作者,并且不...阅读全文

博文 2015-09-06 09:00:02 Jr小王子

Go语言 time时间格式转换

最近做项目用到golang语言,遇到时间格式相互转换的问题,参考网上资料自己写了代码测试了下,能够成功转换,把代码贴出来以备后用,也供需要者查看。 // time_format.go package main import ( "fmt" "time" ) func main() { fmt.Println("Hello World!") //返回现在时间 tNow := time.Now() //时间转化为string,layout必须为 "2006-01-02 15:04:05" timeNow := tNow.Format("2006-01-02 15:04:05") fmt.Println("tNow(time format...阅读全文

博文 2015-06-17 23:00:50 qq_534019165

IntelliJ IDEA开发golang环境配置

看到一篇文章说IntelliJ IDEA开发作为Go的开发环境不错,突然发神经地想试了一下。 谁知道跟着教程走,到后面越来越不对劲,去百度其它教程,谁知道千篇一律。。。 好了下面开始了 首先把GO安装好。。。(自行安装,附上一篇我之前写的MAC安装GO) 安装IntelliJ IDEA,下载地址: https://www.jetbrains.com/idea/download/。 下载go-lang-idea-plugin这个插件,下载地址: https://plugins.jetbrains.com/plugin/5047。(PS:网上百度的基本都是下源码、编译,搞了一个下午编译,谁知道有已经编译好的可以下载) 下载之后,是一个zip文件,不需要解压,打开IntelliJ IDEA,打开P...阅读全文

博文 2016-02-14 04:00:02 skytoup

golang 处理Json 数组

今天遇到个接口需要处理一个json的map类型的数组,开始想法是用simple—json里的Array读取数组,然后遍历数组取出每个map,然后读取对应的值,在进行后续操作,貌似很简单的工作,却遇到了一个陷阱。 Json格式类似下边: {"code":0 ,"request_id": xxxx ,"code_msg":"" ,"body":[{ "device_id": "xxxx" ,"device_hid": "xxxx" }] , "count":0} 很快按上述想法写好了带码,但是以外发生了,编译不过,看一看代码逻辑没有问题,问题出在哪里呢? 原来是interface{} Array方法返回的是一个interface{}类型的,我们都在golang里interface是一个万能的接受...阅读全文

博文 2014-10-04 19:26:13 u010471121

[golang学习] 在idea中code & debug

idea 虽然审美倒退了n年. 不过功能还是相当好用的. idea 的go插件堪称最好的go ide. 1. 语法高亮支持 2. 智能提示 3. 跳转定义(反跳转回来) 4. 集成debugger 还有重构等等功能也不错. 这些都是用起来让人很舒服的功能. 你要是用vim/emacs/sublime啥的. 当我没说. 很多人可能都不知道golang 代码可以debug. 很多人用console gdb命令式的调试. 如果不需要界面化的调试器, 也可以略过了. 1. 语法高亮支持 配色看起来挺搓的. 默认的, 我也懒得改. 大家可以随便改... 2. 智能提示 虽然我觉得VS + VA的提示更吊一点. 不过这样也还不错. 3. 跳转定义(反跳转回来) 这在查看代码时很有用. 比如我跳转到fmt...阅读全文

博文 2014-12-30 22:00:01 lingdhox

VSCODE中godef无法跳转到定义的问题

文链接:http://targetliu.com/vscode-can-not-go-to-def/ 之前研究GOLANG时一直用LiteIDE,不得不说,LiteIDE的确不错,但是总感觉缺乏美感,是一款很中规中矩的编辑器。网上看到大家对VSCODE评价不错,尝试后发现的确不错,布局简洁、插件化、支持中文,通过VSCODE GO扩展能够很舒服的写GO的代码。 问题描述 不过在实际使用过程中发现 net 包无法正常跳转到定义,如下段代码 ResolveTCPAddr就无法正常跳转 package main import ( "net" ) func main() { _, err := net.ResolveTCPAddr("tcp", ":4040") } 由于VSCODE GO中跳转到定...阅读全文

博文 2017-02-09 08:29:59 Target_Liu

go 通过nginx代理后获取用户ip

go 如果使用自己的服务器,可以直接使用 net/http 来获取 func ip(w http.ResponseWriter, r *http.Request) { fmt.Println(r.RemoteAddr) } 另外,在net包中也有 func (c *IPConn) RemoteAddr() Addr 以上是获取用户的ip,是与用户直连的ip,如果走代理,会是代理的ip 如果通过nginx代理,上边方法获得的是nginx的服务器的ip,所以这里要设置nginx代理 proxy_set_header Remote_addr $remote_addr; nginx会 转发ip到go的服务器,在通过go获取header中的romote_adder 获取用户的ip func ip(w ...阅读全文

博文 2014-10-04 19:26:28 zggsdy

Go语言的分词器(sego)

今天,主要来介绍一个Go语言的中文分词器,即sego。本分词器是由陈辉写的,他的微博在这里,github详 见此处。由于之前他在Google,所以对Go语言特别熟悉。sego的介绍如下 sego是Go语言的中文分词器,词典用前缀树实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 分词速度单线程2.7MB/s,goroutines并发13MB/s, 处理器Core i7-3615QM 2.30GHz 8核。 接下来,以如下几个方面来介绍sego 1. sego的安装 2. sego的原理 3. sego的使用 1. sego的安装 首先,在Go语言中,有很多第三方包,可以帮助我们实现某些特定的功能。比如这里...阅读全文

博文 2015-03-26 23:00:08 ACdreamers

Golang获取有重定向信息的response的location

在用golang做模拟登录某个网站的功能时发现了一个问题:如何获取该网站带有重定向信息的Response?或者说我只需要这个Response中的location信息即可,但是发现对于go的标准库net/http来说如果不hack这个库是没办法直接获取带有重定向信息的Response,而且目前大多第三方的http库也是基于标准库net/http的,貌似就要改net/http库或库本身就提供了对于重定向的设置? 那么我们就得先查看一下net/http库的源码了,通常我们都会用http.Client的Do方法发起一个请求,首先看一下它的源码: // Do sends an HTTP request and returns an HTTP response, following // policy ...阅读全文

博文 2015-05-04 09:00:01 reflectsky

golang label breaks

我们在for多层嵌套时,有时候需要直接跳出所有嵌套循环, 这时候就可以用到go的label breaks特征了。 先看一个范例代码: package main import ( "fmt" ) func main() { fmt.Println("1") Exit: for i := 0; i < 9; i++ { for j := 0; j < 9; j++ { if i+j > 15 { fmt.Print("exit") break Exit } } } fmt.Println("3") } 执行效果: 注意, label要写在for循环的开始而不是结束的地方。和goto是不一样的。虽然它是直接break退出到指定的位置。 break的标签和goto的标签的区别可以参考下面代码: JL...阅读全文

博文 2015-02-11 03:00:00 ghj1976

beego关于session的问题

我在自己的网站中使用的是简单的:登陆时setsession,使用时getsession,在退出登陆时deletesession。在电脑上使用没有问题,但我同时在手机上测试的,手机上set,get都没问题,但delete就不行了,怎么都退不出登陆状态,重启手机浏览器都不行,删除cookie后才可以退出登陆,这是什么原因,deletesession操作时应该是有删除cookie处理的,是不是手机浏览器不支持外部的删除cookie操作?再问一句,好像手机浏览器不支持301跳转!这是什么原因。电脑用的是firefox浏览器,手机用的是安卓uc浏览器...阅读全文

Golang中的interface,一看就明白

Golang中的interface,一看就明白 先说说接口,接口我理解为一些行为的集合。似乎还是很懵x。来看看代码和允许效果,再说。 package main import "fmt" type TypeCalculator interface { TypeCal() string } type Worker struct { Type int Name string } type Student struct { Name string } func (w Worker) TypeCal() string { if w.Type == 0 { return w.Name +"是蓝翔毕业的员工" } else { return w.Name+"不是蓝翔毕业的员工" } } func (s S...阅读全文

博文 2018-12-07 19:34:43 小小程序员Eric

golang -- 网络字节编解码(2)

以下是利用标准库binary来进行编解码 解码 ①使用bytes.NewReader/bytes.Buffer来存储要解码的ascii串 ②使用binary.Read来解码 package main import ( "bytes" "encoding/binary" "fmt" ) func main() { var pi float64 bpi := []byte{0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40} buf := bytes.NewReader(bpi) err := binary.Read(buf, binary.LittleEndian, &pi) // 这里可以继续读出来存在变量里, 这样就可以解码出来很多, 读的次序和变...阅读全文

博文 2014-10-04 19:27:04 flyking

基于vim的golang开发环境配置

我用的操作系统为ubuntu14.04 用惯了命令行下裸的vim,有些厌倦,尝试着去emacs里打了个滚,各种快捷键让我觉得惨不忍睹。回到vim感觉像是回到了天堂,想想又不是只有emacs才有图形界面,虽然我已经弃用gvim很久,不代表它不存在。故而转投gvim的怀抱。 而最近正好开始学golang,尝试着写些小程序,却发现vim对golang的原生支持实在是糟糕,于是重新走上了配置vim的不归路…… 插件: pathogen 我使用pathogen来管理所有的插件,这是因为它比vundle简单……在vim当中安装东西的手感不如一句简单的git clone来的好。 安装: https://github.com/tpope/vim-pathogen,按照说明完成安装即可 它的用法很简单,便是把...阅读全文

博文 2014-10-04 19:26:05 winkar

Go语言流程控制语句if、goto、for、switch

最近在看go语言,虽然网上大多数的评论都是在吐槽go语言,但是我喜欢简单的东西,我不拿它和任何语言去比,去用每一种语言完全是自己兴趣问题。 还没开始就跑题了 ~~!回到标题上来,golang的流程控制,刚开始学go,记性一直都不怎么好,做个笔记 流程控制包含三大类:条件判断、循环控制和无条件跳转。 if go语言的if package main import ( "fmt" ) func main() { if a := 8; a > 2 { fmt.Println("a 比 10 大") } else { fmt.Println("a 比 10 小") } } 输出 a 比 2 大 if语句允许在if里面声明变量,但是这个变量的作用域只在该条件逻辑块内。 goto package main...阅读全文

博文 2014-10-06 06:16:32 guhao022

golang web 跳转的实现

package mainimport ( //"database/sql" //_ "github.com/mattn/go-sqlite3" "fmt" "html/template" "log" "net/http" "strconv")type User struct { ID int Name string}func (user User) String() string { format := `ID : %d Name: %s` return fmt.Sprintf(format, user.ID, user.Name)}func saveUser(w http.ResponseWriter, req *http.Request) { userId, _ := strconv.A...阅读全文

博文 2015-08-09 11:00:01 石头军

Vim 搭建强大的 Golang 开发环境

Vim 有一个很强大的地方是有各种强大的插件 对于 Go 语言,官方提供了一些简单的 Vim 插件,比如 语法高亮;Sublime 中有一个插件 GoSublime 对 Go 开发支持比较好。而 Vim 中有一个插件 vim-go,功能很强大。喜欢 Vim 的 gopher 可以试用下。插件地址:[vim-go](https://github.com/fatih/vim-go)。 ### 主要特性: ### 1、语法高亮,如 函数,操作符,方法等; 2、通过 gocode 支持自动完成; 3、保存是自动 gofmt,而且会保持光标的位置,不会破坏 undo 历史记录(这点很重要); 4、通过 godef 支持代码跳转(如跳转到定义处); 5、在 Vi...阅读全文

使用Go语言计算网络IP地址的CIDR

使用了Java、C#等许多语言好多年了,一直没怎么用过这些语言中的位移运算符,最近为了实现了一个小功能,才体会到这几个运算符的用途。在介绍如何用GO语言计算CIDR地址段之前,先介绍一下什么是网络地址的CIDR。 CIDR全称Classless Inter-Domain Routing(无类域间路由),相比CIDR,现在全球的IPV4地址(通过32位比特位表示)早在上世纪80年代就被划分成了A、B、C、D、E五大类地址,其中A类地址的比特位以0开头,B类地址以10打头,C类地址以110打头,D类地址以1110打头,E类地址以1111打头。其中D类地址主要用于路由组播,E类地址暂时保留。每一类地址剩余的比特部分又被划分为网络和主机两部分,具体划分请见下图: 每一类IP地址具体范围如下图所示,其...阅读全文

博文 2015-06-17 23:01:28 duhf_think

golang http.Redirect()函数容易误解的地方

调用http.Redirect()函数后,并不会立刻进行跳转,而是继续顺序执行函数中的所有的代码后,再进行跳转。但是Redirect后面的写界面的代码不会发送到游览器前端的。 代码如下: func Chat(w http.ResponseWriter, r *http.Request) { fmt.Println("Chat") r.ParseForm() withWho := r.Form.Get("withWho") type ToWho struct { Name string } if ret := CheckCookie(r); ret == "" || "" == withWho{ url := "/login" http.Redirect(w,r, url, http.Stat...阅读全文

博文 2015-06-17 20:17:46 rufidmx

idea intellij go "can’t find import" 解决方法

尝试众多golang的ide,最后发现intellij目前做的完成度最高 eclipse go 不能进行包、类、方法等的跳转,这点是无法忍受的,所以果断换成intellij 但是发现在intellij里面不能import $GOPATH里src下的包,网上搜索了很长时间, 在这里找到解决方法:https://github.com/mtoader/google-go-lang-idea-plugin/issues/224 Looking through the source, it seems that the plugin doesn't use the $GOPATH (to be fair, I think earlier Go docs didn't make the distinct...阅读全文

博文 2014-10-04 19:26:18 mahang

google hosts

google hosts 2015.2.16更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新 注1:请使用chrome浏览器,并在地址栏里输入chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可===== #google hosts 2015.2.15 by 360kb.com #base services 64...阅读全文

博文 2015-02-28 03:00:01 yudishow

golang 判断是否实现interface接口的方法

由于golang的interface使用很灵活,不需要显示的实现接口interface的方法, 有点动态化的感觉, 缺点:如果没有实现interface的方法,强行转换成interface,运行时候异常报错 解决办法:在编译的时候就把这种错误抛出来,上代码: package main import ( "fmt" ) type value interface { Show() } type test_value struct{} // func (value *test_value) Show() { fmt.Printf("test \n") } var _ value = new(test_value) // 使用类似方法处理,编译的时候会报错 func main() { } // --...阅读全文

博文 2017-01-22 10:00:08 golang_yh

HBase Go客户端Row构造注意事项

1. Hbase 的Go客户端语言使用方法 2. Hbase的Row使用注意事项 2.1. Row的前几个字段尽量散列 2.2. Row的排序是把所有Row中的字符做字典排序 我们最近在一个项目中使用Hbase做日志数据的存储,在其之上做一些数据分析工作,相对java来说,团队成员对Go的使用更熟练,所以自然使用Go作为Client的开发语言, 以前从来没有跟Hbase打过交道,本来一个比较简单的任务,愣是磕磕绊绊做了好久。。。 本文只说说Hbase的Row构造时的注意事项 1 Hbase 的Go客户端语言使用方法 Hbase官方没有Go的客户端,但是它提供了thrift服务,我们可以用Go语言开发一个thrift 的client,通过向hbase的thrift server发送RPC请求,...阅读全文

博文 2015-02-10 03:00:01 cobbliu

漫谈单点登录(SSO)

1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解决方案尽显开发及使用者的逼格,当然需求所致无谓好坏高低,满足实际之需才是王道! 本文并不讨论上述提到的方案的整合使用、或者复杂场景如:安全、防火墙、N 多个系统层叠调用这种"巨型项目"里SSO的实现与使用,也并不涉及 C/S 、C/S+B/S 的SSO解决方案,仅关注B/S 上的SSO实现。虽是如此,然而万变不离其宗,这里我们将从一个简而小的登录场景去接触SSO的本质,描述如何原生态地自实现一...阅读全文

博文 2017-11-30 12:03:09 EzrealLiu

让vscode完美支持go vendor的代码跳转(使用vscode必看)

Vscode是世界上最好的Go IDE!! 所以使用vscode作为Go的IDE是一件非常爽的事情。 可是事情总有不完美。现在有很多项目都是用vendor来做第三方包的版本控制,可是godef竟然不支持vendor的代码跳转!!我们想跳转到vendor中的代码,目前是无法做到的。 现在特分享一个自修改的版本,完美支持vendor特性,只要go install后,就可以爽爽的用vscode了。 欢迎大家加入Golang隐修会,群号894864,在群文件中就可下载,而且群内大神很多哦...阅读全文

博文 2016-04-19 15:00:02 abv123456789

使用go语言和webview编写桌面应用

https://github.com/tenny1225/go-web-app 具体思路是使用http实现页面跳转,使用jsonrpc实现ui和go之间的数据通讯。 golang版本的webview使用的是github.com/zserge/webview这个库,自己封装了一套Page,实现页面之间的跳转。具体使用 package main import "time" func main() { StartWindow("golang html", 400, 400, true, func() { pager := NewPager(&MyPage{},&MyPageAction{}) pager.StartPage(0) }) } type MyPage struct { PageImpl...阅读全文

博文 2018-11-29 18:34:41 tenny1109

frp内网穿透

frp内网穿透 背景环境 家里拉了移动光纤,接到小米R3P上,下面接了大学里一直使用的Time Capsule和后搭的黑群晖(某星际),看到Nas能够自己搭建博客系统和Git,Docker等,所以就想把自己的Nas从移动内网中揪出来,能够通过外网访问,遂各种网上找方法。 具体实现 1、花生壳之类; 2、如果自己的网络本身就有公网IP,是可以使用DDNS方式配置的,但是移动基本上是要不到公网IP的,貌似电信是可以打电话要求安装监控用... 3、Ngfork和Frp内网穿透; 从稳定性和便捷性性上考虑,技术选型使用Frp。 实现方法 准备 有公网IP的服务器一台 域名一个 本地宽带网络 自己想要公布出去的服务 购买VPS服务器 顺便先搭建个科学上网 运行SS ss-fly/ss-fly.sh -...阅读全文

博文 2019-06-03 01:34:38 James2119

google hosts 2015

感谢互联网为所有人提供开放自由的服务,祝愿祖国繁荣富强人民安居乐业。 ------ 注1:请使用chrome浏览器,并在地址栏里输入chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ------ google hosts 2015.2.2 ========================================= #google-hosts-2015 #base services ...阅读全文

博文 2015-02-05 03:00:01 5tao

支付二维码融合 Go实现

个人店铺线下支付二维码,一般会放2个(1个微信收款码,一个支付宝收款码) 网上也提供很多多个二维码融合的技术,这里仅提供思路,以及GoLang实现的样例代码。 具体效果可看: 个人电铺注册 http://pay.xiaoa7.top:8090/register 需要提交个人的微信、支付宝收款码 个人融合二维码 http://pay.xiaoa7.top:8090/qr/注册时你填写商铺代码,可以将生成的二维码,打印在任何地方。 目前只支持微信,支付宝;后续可扩展支持其他。 融合二维码支付流程: 1.商户在支付宝、微信中生成个人收款码,存储到手机。 2.浏览器访问(微信里直接扫码打开这个地址也可以)http://pay.xiaoa7.top:8090/register ,提交收款码图片 3.服...阅读全文

博文 2019-01-19 11:34:44 xiaoa7

华为区块链实战营-DAY3打卡-在cloudIDE环境下编译

DAY 03作业---区块链核心技术-分布式账本首先,感谢同班大神们的带领,尤其感谢ID为“学完搭个链圈钱”童鞋的指导。完成了打卡任务。1. CloudIDE申请1)直接在线搜ide,就可以看到cloudIDE如下,免费试用。 2)点击立即体验,跳转:https://devcloud.huaweicloud.com/cloudide/home。可以看到如下界面。(当前CloudIDE处于公测阶段,您最多可以创建工作空间1个) 接下来就是默认下一步,需在cloudIDE 建立名为AAA(自定义),技术栈选go 的工作空间,进入IDE。2.上传 upload 1)上传助手下发的作业homework包(这里切记,需要把作业重新压缩成zip包上传) 2)新建terminal 3)解压homework...阅读全文

博文 2018-08-31 19:34:50 江右十三酥

Web产品实现个人收款的几种方式

##### 接入前准备 - 通过 [Payjq](https://payjq.cn) 注册个人收款接口,原理是帮助你签约微信和支付宝(不需要营业执照),大概几分钟可以开通,开通后即可永久使用。 ###### [NATIVE 扫码支付](https://help.payjq.cn/api-lie-biao/sao-ma-zhi-fu-ff08-zhu-sao-ff09.html) - 效果:用户点击支付后,前端网络请求你的后台,你后台再请求 Payjq支付接口返回支付二维码到前台,页面展示微信或者支付宝二维码,用户用手机微信或支付宝扫码支付 - 扫码请求步骤: - 构建请求参数 - POST 参数到请求地址 - 根据返回内容展示二维码 - 用户支付成功后接收异步通知 - 适用场景:PC网站、P...阅读全文

博文 2019-07-17 22:31:41 zilin9980

分布式游戏服务器引擎GoWorld

**GoWorld是一个使用Golang实现的可扩展的分布式游戏服务器引擎,并支持游戏逻辑的热更新。** ![image](http://goworldgs.com/static/goworld_arch.png) GoWorld架构图 一个GoWorld系统包括一个dispatcher进程、一个或者多个game进程以及一个或者多个gate进程。dispatcher负责game之间以及gate和game之间的消息转发,并对一些基础功能提供支持。Game进程负责Entity对象的管理和所有游戏逻辑的运行,Gate进程负责管理客户端连接,并将客户端请求通过dispatcher转发到game进程。Gate还需要负责对客户端数据进行压缩和加解密(尚未实现)。GoWorld可以通过增加更多的...阅读全文

开源项目 2017-07-29 01:00:04 网友

golang笔记:unsupported driver -> Scan pair: -> *string

golang里,操作mysql数据库,使用查询语句的时候,一般的写法 rows, err := db.Query("SELECT name from table) if err != nil { return } for rows.Next() { var name string err = rows.Scan(&name) if err != nil { return } } 当查出来的字段有NULL的时候,就会报这样的错误unsupported driver -> Scan pair: -> *string 这又是由于Go语言对数据类型的严格限制。name的类型是string,所以只能接受string类型的值,而此处nil是为空的指针类型。最佳解决办法是——插入记录的时候不要...阅读全文

golang debug with LiteIDE

golang 的调试比较麻烦,debug stop into 无法跳转到自己写的代码,但是能够跳转到系统提供的代码。 以下是简单的测试代码:package main import ( "fmt") func main() { i := 5 even(i) b := 1 fmt.Printf("Is %d even? %v\n", i, b)} func even(i int) bool { a := 1 b := a + 1 b = b + 1 return i%2 == 0} 这个情况太诡异了,网上到处是对golang gdb的吐槽。详情可以看这里:http://grokbase.com/t/gg/golang-nuts/1443r0vch8/go-nuts-debugging-in-go...阅读全文

博文 2015-09-07 03:00:00 bnbqian

Emacs中Golang的设置

欲善其事,先利其器。下面记录一些使用Emacs24做golang开发中的一些有用设置,备忘用。 一,golang中的代码跳转 emacs24的go-mode中默认用godef-describe,godef-jump和godef-jump-other-window来做代码跳转,而godef-*这几个命令需要用到外部程序godef来寻找函数定义。安装步骤如下: 1,安装godef 1)设置GOPATH和GOBIN,将GOBIN设置为/usr/local/bin 2) go get github.com/rogpeppe/godef 3) go install github.com/rogpeppe/godef 注: godef也可以从code.google.com/p/rog-go/exp/cm...阅读全文

博文 2015-10-09 11:00:10 cobbliu

intellij idea 支持 go

感觉intellij idea对于go的支持最好 最喜欢的还是函数跳转支持的很好,可以很方便的分析函数调用过程。下面说下让intellj支持go。 1.下载intellj 链接 2.安装好后,添加go插件。有两个源(选其中一个即可) a. Alpha:https://plugins.jetbrains.com/plugins/alpha/5047 b. Nightly:https://plugins.jetbrains.com/plugins/nightly/5047 File->Settings 找到Plugins->Browse reposiories 找到Manage respositories,点击弹出框,然后点击+ 把上面提到的两个源中的一个填上,点击OK 回到刚才的页面,搜索go...阅读全文

博文 2016-10-12 05:00:01 idwtwt

[转载]游戏服务器架构

文:https://www.cnblogs.com/hwcs/p/7203605.html 一、游戏服务器特征 游戏服务器,是一个会长期运行程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类服务的特点是要特别关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。 功能约束,是架构设计决定性因素。基于游戏业务的功能特征,对服务器端系统来说,有以下几个特殊的需求: 游戏和玩家的数据存储落地 对玩家交互数据进行广播和同步 重要逻辑要在服务器上运算,做好验证,防止外挂。 针对以上的需求特征,在服务器端,我们往往会关注对电脑内存和CPU的使用,以求在特定...阅读全文

博文 2018-12-31 19:34:47 Golang语言社区

一些不常见的Go命令参数详解

你是刚开始使用Go工具么?或者你想扩展知识?这篇文章将会描述每个人都需要知道的Go工具参数。免责声明:这篇文章可能会有些偏见。这篇文章描述了我个人会用到的Go工具参数,还有一些是我周围的人遇到的问题。如果你还有别的想法,在Twitter联系我。$ go build -x-x会列出来go build调用到的所有命令。如果你对Go的工具链好奇,或者使用了一个跨C编译器,并且想知道调用外部编译器用到的具体参数,或者怀疑链接器有bug;使用-x来查看所有调用。$ go build -x WORK=/var/folders/00/1b8h8000h01000cxqpysvccm005d21/T/go-build600909754 mkdir -p $WORK/hello/perf/_obj/ mkdi...阅读全文

博文 2016-10-11 02:00:00 abv123456789

让vscode完美支持go vendor的代码跳转(使用vscode必看)

版权声明:本文为Sunface(孙飞)原创文章,转载请注明出处 https://blog.csdn.net/abv123456789/article/details/51171097 Vscode是世界上最好的Go IDE!! 所以使用vscode作为Go的IDE是一件非常爽的事情。 可是事情总有不完美。现在有很多项目都是用vendor来做第三方包的版本控制,可是godef竟然不支持vendor的代码跳转!!我们想跳转到vendor中的代码,目前是无法做到的。 现在特分享一个自修改的版本,完美支持vendor特性,只要go install后,就可以爽爽的用vscode了。 欢迎大家加入Golang隐修会,群号894864,在群文件中就可下载,而且群内大神很多哦...阅读全文

博文 2019-03-17 13:13:54 erlib

golang 环境配置建议

AUTH:PHILO VERSION:1.2 开发环境的必要特征 项目管理 快速文件跳转 自动语法检查 自动补全 查找定义 启动速度快 如果自己有需求的话插件可以随便写 灵活的运行配置 (project,lint,hint,autocomplete) 要实现上面几点我们来一步一步的配置。 我的大环境 OSX GO 1.4 HomeBrew go 环境安装 这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。 环境配置:(golint,gooracle,mercurial) 安装mercurial: brew install mercurial 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用的挺多的...阅读全文

博文 2015-03-09 12:02:22 jianyingLi

Go Search Extension 版本发布!一款超实用小工具

大家好,又有超实用小工具跟大家分享啦,欢迎大家体验和吐槽~ 这是一款旨在帮助Go开发者提高开发效率的超实用工具,它是一个可在浏览器地址栏快速、方便、高效地搜索Go文档的浏览器插件,目前支持Chrome、Firefox和Edge下载。类似于 Rust 社区的RustSearchExtension插件。 下载地址 Chrome版本 Firefox版本 Eadge版本 提供的功能 1. 支持搜索 Go 标准库文档 可通过关键词搜索package、func、interface,快速查看其定义和描述,也可选中并跳转到文档页面查看具体说明。 2. 支持搜索热门项目文档 可通过搜索package名称获得GitHub上star数前8k的go项目文档相关的信息,包括最新版本号和package的说明。 3. 支...阅读全文

博文 2020-04-23 23:33:15 Kathygo

Golang通过syscall调用win32的Api

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 Golang不是完全的跨平台, 并没有提供Windows下的相关方法,只能通过Syscall包去调用Win库。 开始 如果你不了解Windows下API调用,请观看MSDN文档,我知道有些人找不到,没关系: 1. 英文版: https://msdn.microsoft.com/en-us/library/windows/desktop/hh447209(v=vs.85) ...阅读全文

博文 2018-01-24 15:33:04 90design

Go Search Extension版本发布!一款超实用小工具

大家好,又有超实用小工具跟大家分享啦,欢迎大家体验和吐槽~ 这是一款旨在帮助Go开发者提高开发效率的超实用工具——Go Search Extension,它是一个可在浏览器地址栏快速、方便、高效地搜索Go文档的浏览器插件,目前支持Chrome、Firefox和Edge下载,是我们前期开发的[RustSearchExtension插件](https://chrome.google.com/webstore/detail/rust-search-extension/ennpfpdlaclocpomkiablnmbppdnlhoh)的go版本。 #### **下载地址** [Chrome版本:https://chrome.google.com/webstore/detail/golang-sear...阅读全文

博文 2020-04-23 18:21:11 Kathygo

windows下 sublime text2 跳转查看go源码

1.下载ctags 网站被墙,点此下载 下载后的exe文件随便放在哪个目录,将目录添加到 环境变量 path中.然后 cmd,输入ctags --help,显示一堆帮助文字,说明就可以了。 3. 在sublime text 2中安装CTAGS, ctrl + shift + p输入CTAGS回车就行了,不知道怎么安装包的请百度。 4. 在sublime text 2打开$GOROOT下src\pkg目录(例如 D:\go\src\pkg),在左侧边栏pkg文件夹上右击 Rebuild Tags。稍等一会。(右键看不到的朋友 先ctrl + shift + p ,rectags) 5.OK,大功告成。随便写个go,例如fmt.Println(。。。。),在Println上按ctrl+shift...阅读全文

博文 2014-10-04 19:26:29 阳光灿烂的日子

golang复用http.request.body

问题及场景 业务当中有需要分发http.request.body的场景。比如微信回调消息只能指定一个地址,所以期望可以复制一份消息发给其他服务。由服务B和接收微信回调的服务A一起处理微信回调信息。 解决思路 最开始考虑的是直接转发http.request。使用ReverseProxy直接将http.request由服务A转发给服务B。但是微信涉及到验证等问题,完全调整好非常麻烦。所以转换思路,打算将http.request.body的内容直接post给服务B。 可是http.request是readcloser。我们将http.request readAll的时候讲无法再次读取http.request里面的信息。 如何才能将http.request.body复制使用呢? 其中c表示的是htt...阅读全文

博文 2018-10-20 18:34:42 ppmoon

Go Search Extension 版本发布!一款超实用小工具

大家好,有一个超实用小工具跟大家分享啦,欢迎大家体验和吐槽~这是一款旨在帮助Go开发者提高开发效率的超实用工具,它是一个可在浏览器地址栏快速、方便、高效地搜索Go文档的浏览器插件,目前支持Chrome、Firefox和Edge下载。类似于 Rust 社区的RustSearchExtension插件。 下载地址 Chrome版本Firefox版本Eadge版本 提供的功能 1. 支持搜索 Go 标准库文档 可通过关键词搜索package、func、interface,快速查看其定义和描述,也可选中并跳转到文档页面查看具体说明。 2. 支持搜索热门项目文档 可通过搜索package名称获得GitHub上star数前8k的go项目文档相关的信息,包括最新版本号和package的说明。 3. 支持快...阅读全文

博文 2020-04-24 12:32:46 Kathygo

免费自学Cocos2d-js2016原创视频教程(17集)

代码下载地址:http://www.h5edu.cn/index.php?c=index&a=step&lessonid=53 视频下载地址:http://pan.baidu.com/s/1eQQo8AA 密码: 请加qq群:461039382 第1章 添加图片和文字 这一章主要讲解Cocos2d-js添加图片精灵和文字,设置它们的坐标,并且改变字体的颜色 第2章 定时调度器和动作行为 这一章主要讲解动作: 普通动作:Move, Rotate, Scale, Fade, Tint, etc. 组合动作:Sequence, Spawn, Repeat, Reverse 变速动作:Exp, Sin, Cubic, Elastic, etc. 其他动作:CallFunc...阅读全文