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

golang的++与--

http://godoc.golangtc.com/doc/faq#inc_dec 简单地说, 在golang中++,--操作是语句而不是表达式. 所以a=b++, return x++之类绝对提示错误. 语句是无法放到表达式的位置 Why are ++ and -- statements and not expressions? And why postfix, not prefix? Without pointer arithmetic, the convenience value of pre- and postfix increment operators drops. By removing them from the expression hierarchy altogether...阅读全文

博文 2016-09-09 18:00:01 zolo

用golang写socks5代理服务器1-本地代理

用go语言来实现socks5代理服务器,后面会加入ssh远程代理,用户验证,均衡负载一些吧 首先监听8080端口,循环接收tcp连接 server, err := net.Listen("tcp", ":8080") if err != nil { log.Panic(err) } defer server.Close() log.Println("开始接受连接") for { client, err := server.Accept() if err != nil { log.Println(err) return } log.Println("一个新连接") go socks5Proxy(client) } socks5Proxy函数用来实现sock5代理 先介绍一下sock5代理协议 ...阅读全文

博文 2016-10-20 08:00:09 myml

分布式文件服务器godfs

godfs ========== [![Build Status](https://travis-ci.org/hetianyi/godfs.svg?branch=master)](https://travis-ci.org/hetianyi/godfs) [![go report card](https://goreportcard.com/badge/github.com/hetianyi/godfs "go report card")](https://goreportcard.com/report/github.com/hetianyi/godfs) ### ```godfs``` 是一个用go实现的轻量,快速,简单易用的分布式文件存储服务器。 ```godfs``...阅读全文

go-if、for、switch、goto、break、continue

if语句: package main import "fmt" func main() { //if后面没有括号 if 1 < 2 { fmt.Println("1<2") } var a = 10 //初始化表达式-a的作用范围只在if语句块 if a := 1; a > 1 { fmt.Println("a > 1") fmt.Println(a) } else { fmt.Println("! a > 1") fmt.Println(a) } fmt.Println(a) } 输出如下: 1<2 ! a > 1 1 10 for语句: package main import "fmt" func main() { //第1种形式无限循环 a := 1 for { a++ if a > ...阅读全文

博文 2016-09-13 08:00:02 u013210620

[GoLang]GO语言编写的简易TCP服务端、客户端

客户端程序: package main import ( "net" "os" "fmt" "io" ) //缓冲区大小 const BUFFSIZE = 1024 //定义消息缓冲区 var buff = make([]byte, BUFFSIZE) //链接处理 func handleConn(tcpConn *net.TCPConn, addr string) { if tcpConn == nil { //fmt.Println() return } for{ n, err := tcpConn.Read(buff) if err == io.EOF { fmt.Printf("远程链接:%s已经关闭!\n", tcpConn.RemoteAddr().String()) retur...阅读全文

博文 2014-10-09 16:00:05 u011229962

【北京】滴滴golang开发工程师急招

滴滴出行社招—平台技术HR直招-- Golang开发工程师—北京 岗位职责: 1. 参与滴滴基础服务平台的设计、研发工作,提升滴滴产品稳定性; 2. 与产品经理尝试沟通产品需求; 3. 进行相关产品的技术文档编写,方案设计; 4. 学习研究业界先进技术,保持技术进步。 任职要求: 1. 本科及以上学历,计算机相关专业,两年以上服务端研发经验; 2. 深入理解计算机原理,有扎实的数据结构和算法基础; 3. 深入理解linux系统及其原理,熟悉TCP/IP、HTTP协议以及网络编程; 4. 良好的编码和文档习惯,对代码美感的追求孜孜不倦; 5. 精通Go/C/C++/Python等至少一门语言,有Go开发经验者优先; 6. 熟悉常用的sql、nosql(非关系型数据库)数...阅读全文

Linux下使用goagent

Linux下使用goagent 分类: linux 2013-04-18 11:16 21614人阅读 评论(4) 收藏 举报 说到穿越长城的软件有很多,不过最近最有名而且免费的就非goagent莫属了,goagent是利用谷歌的GAE服务来翻越长城的,具有速度快,稳定的特点,正好今天我的ssh代理过期,于是准备以后使用goagent来FQ。 1:申请appengine.google.com的个人apppid 首先登录appengine.google.com,申请个人apppid,它将在Goagent中用到。appid只要唯一就可以,必须是英文字符和数字。 二、安装和本地部署 安装goagent服务端 既然已经成功的申请到了apppid,那么接下来的工作就是安装goagent的服务端了。 1...阅读全文

golang游戏服务器招聘

dear,golang爱好者 首先感谢大家对golang生态圈的支持。 我公司是上海游戏研发公司,服务器后台都是用golang开发,对golang人才常年招聘中。 工作1年以上的同学都可以随时和我公司联系,我们会根据需求做进一步沟通。 PS。紧急招聘中,欢迎随时并且尽快与我联系。 Qq ,311025835...阅读全文

简单的spider框架-带sample

之前参考别人的一些材料,做的一个简单的spider框架,里面带有一个小sample,以前挂在oschina上,现在挂到github上,欢迎大家批评给建议。 https://github.com/colefan/game_spider 另外,在做一个tcp服务器框架,还在制作中,有兴趣的同学,相互讨论哦。 https://github.com/colefan/gsg...阅读全文

用过beego ORM框架的大神进来看看

用了beego的orm框架,发现会对表名全部转换成小写了。而我的数据库中的表名是T_UserInfo,经过GO转换之后变成了t_userinfo了。而我的数据库对表名大小写是敏感的,如果设置成不敏感,那么对以前的一些服务程序会有影响,所以想问一下这个ORM可以设置表名不自动转换吗? stament.QueryTable("TUserinfo").Filter("id", id).One(&data...阅读全文

golang revel下免声明对象动态接收json post 数据

写惯了node服务端API,换到静态类型语言很不爽,规则一大堆~ 要动态必需的!必须的!的! 这里注意几个包 json转换和解析用 github.com/bitly/go-simplejson go get github.com/bitly/go-simplejson body转换解析用 直接导入 strings io/ioutil POSTMAN提交数据 {"data":"yes","hotel":["caonima","gelebi"],"HP":10000000} 控制器action 数据POST接收 package controllers import ( "github.com/revel/revel" "io/ioutil" "strings" console "fmt" sim...阅读全文

博文 2014-12-18 08:00:01 诸葛囧明

负载均衡系统 Seesaw

Seesaw 是 Google 开源的一个基于 Linux 的负载均衡系统。Seesaw 包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast, Direct Server Return (DSR), 支持多个 VLANs 和集中式配置。同时其设计的宗旨是易于维护。 需要注意的是,尽管该项目挂靠在 Google 名下,但并非 Google 官方产品...阅读全文

开源项目 2016-01-29 16:00:00 google

Go 实现lamda、匿名函数和内联函数

Go 实现lamda、匿名函数和内联函数 在Go语言中,lamda、匿名函数和内联函数的实现称作字面函数(function literals)。当一个函数足够小时,你可以创建一个字面函数。下文将创建一个简单的实例来展示这个函数的实现。 package main import("fmt") func main(){ substract := func(a, b int) int { return a - b } fmt.Print("--substraction function literals: ", substract(10, 2), "\n") } 输出结果 --substraction function literals: 8 one-line函数有它具体的应用场合,特别是对于简单的...阅读全文

博文 2016-06-12 19:00:05 GreatElite

golang web编程:简单的会话(使用sessions包)

网站不能根据来访的ip来确定来访者的身份,ip加端口号也不行.一般都是通过用户名密码来确定用户身份的,但用户也不能每次访问网页时都手动输入一次用户名和密码啊,这样太累了. 一个最简单的想法就是让浏览器帮我们输入,但是http协议本身没有夹带用户名密码的功能,而且有时我们的需求又不只是用户名和密码这么简单,比如说我们还想在浏览器和网页服务器之间传递用户的id,上次访问网站的时间等,每个网站的要求都不一样,所谓众口难调. 现在的做法是,浏览器允许网页服务器在浏览器里存一小段数据,什么数据都行,你自己的格式自己去解析就好了.具体的做法是,浏览器第一次访问服务器时,服务器应答中就会包含需要浏览器请求的数据,浏览器收到服务器的应答,并把数据保存起来.当浏览器再次访问服务器时,浏览器就在请求里包含这段数...阅读全文

博文 2015-06-17 20:17:43 dean_go

分布式任务系统cronsun

cronsun 是一个分布式任务系统,单个结点和 `*nix` 机器上的 `crontab` 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 `crontab` 一个不错的选择。 cronsun 是为了解决多台 `*nix` 机器上`crontab` 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。 cronsun 是在管理后台添加任务的,所以一旦管理后台泄露出去了,则存在一定的危险性,所以`cronsun`支持`security.json`的安全设置: 如上设置开启安全限制,则添加和执行任务的时候只允许选择配置里面指定的用户来执行脚本,并且脚本的扩展名要在配置的脚本扩展名限制列表里面...阅读全文

开源项目 2017-07-04 03:00:06 网友

go发送邮件

1.获取Go邮件库(自带发送不了) go get gopkg.in/gomail.v1 2.包含库 import ( "gopkg.in/gomail.v1" ) 3.例子 //info.From:发件地址或账号 //to: 收件地址 //body:邮件内容 //port:邮件服务器端口 //info.Host:邮件服务器地址 //info.Password:密码 func GoMail(to, body string) error { info, err := MailInfoGet() if err != nil { beego.Error("Get Mail Config Err:", err) return err } if info.Host == "" || info.Port ...阅读全文

博文 2016-09-19 14:00:01 idwtwt

高性能跨语言 RPC Hprose

_Hprose_ 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写 —— 微服务首选引擎。 它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要稍许的时间去学习,就能用它轻松构建跨语言跨平台的分布式应用系统了。 它提供了高效的序列化和反序列化库,并在此基础上提供了方便灵活的 RPC 引擎。 _Hprose_ 支持众多编程语言,例如: * AAuto Quicker * ActionScript * ASP * C++ * Dart * Delphi/Free Pascal * dotNE...阅读全文

开源项目 2012-12-26 16:00:00 andot

Go项目(一)、服务器数据拉取和Material Design风格

零、Go项目的github地址:https://github.com/fantianwen/Go 一、前言:因为希望能能够整合现在安卓的围棋app中较好的东西和当下较为流行的App中常见的功能,于是,打算开始这个叫Go的项目。 初步希望实现的功能: 1、使用Material Design风格进行app界面的搭建; 2、具体实现模块: 1>用户中心; 2>新闻中心; 二、新闻中心的实现: 2.1、使用技术:Jsoup,tcpdump,wireshark,本来打算使用tcpdump和wireshark来进行sina体育客户端的数据包的抓取,然后分析出sina体育客户端和服务器端的交互接口。希望有时间能够学习下lunix下的抓包工具tcpdump命令。使用tcpdump分析数据接口失败之后,就使用...阅读全文

博文 2015-05-15 23:00:18 HNAer_RadAsm

Golang+Android实现文件上传(多文件上传、附带请求参数)

本文是上一篇文章 Golang+Android(使用HttpURLConnection)实现文件上传 的升级版,实现多文件上传功能,并且附带http请求参数。 客户端代码: /** * 使用HttpURLConnection通过POST方式提交请求,并上传文件。 * * @param actionUrl 访问的url * @param textParams 文本类型的POST参数(key:value) * @param filePaths 文件路径的集合 * @return 服务器返回的数据,出现异常时返回 null */ public static String postWithFiles(String actionUrl, Map textParams, ...阅读全文

博文 2015-06-17 20:03:42 books1958

大型分布式网站架构实战项目分析

一、分布式系统是什么?1、定义distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages(分布式系统是指位于网络计算机的组件仅通过传递消息来通信和协调其行为的系统。)所以,从这可以总结出这几个重点:1、组件是分布在网络计算机上2、组件之间仅仅通过消息传递来通信并且协调工作2、特性2.1、副本(Replica)是分布式系统最常见的概念之一,指分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为了对外提供高可用的服务,我们往往会对数据和服务进行副本处理。1)数...阅读全文

博文 2018-04-28 11:54:24 掘金

GoCollaborate: Golang轻量级分布式服务器框架搭建系列 - 0 (索引篇)

前言 Golang 是 Google 在2007年发布的一门开源的静态编译型编程语言,在垃圾回收、结构类型以及并发编程的处理上拥有自己的独到之处,近年来更是成为使用频率上升速度最快的编程语言之一。 想必大家对于 Golang 的大名早已有所耳闻,而今天作者菌则准备通过自己的一个开源项目 GoCollaborate 为例,给大家介绍一下我们如何利用Golang快速开发高性能服务器集群,并将之应用到能源网络,量化交易,区块链,机器学习等等大数据计算场景。 GoCollaborate 是什么? 很多同学看到这里可能会问了,这个框架什么?我又能用它来做什么呢? 简而言之, GoColaborate 是一个提供分布式服务管理搭建的轻量级通用框架,您可以轻松地用它进行编程,构建扩展,以及创建自己的高性能...阅读全文

博文 2017-09-05 04:34:57 CodeBrewer

使用Go语言+goproxy库编写的http代理服务器+图片cache保存脚本 第一版完成

使用Go语言+goproxy库编写的http代理服务器+图片cache保存 第一版完成 用法: 1、安装Go 1.5.x 2、命令行设置环境变量GOSRC(Windows下设置到“我的电脑”里面) 3、安装goproxy库:go get github.com/elazarl/goproxy 4、运行脚本:go run go-httproxy-imagedumper.go 5、可以用go build创建exe版本 package main import ( "crypto/sha1" "errors" "flag" "fmt" "io" "log" "net" "net/http" // "net/http/httputil" "os" "os/signal" "path" "regexp" ...阅读全文

博文 2016-02-16 13:00:03 cteng

Go语言适用的领域

Go语言适用的领域【转载自知乎】1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。2、分布式系统,数据库代理器等。3、网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。4、内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。5、云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。6、游戏服务端的开发...阅读全文

博文 2017-02-10 11:30:56 抚琴煮酒

高速数据同步服务器——Doozer

昨天在讨论平台新架构的时候,还在说要搞个配置管理的服务出来,方便接口的管理。然后今天就看到了这个……人品爆发了吗? 好吧,不扯淡,直接翻译 Doozer 的 README 吧。Doozer 我还没实测,不过感觉,如果真得像 README 上面说得那样,还是很有用,很有用的。 关键——这个玩意提供了 go 的接口。(补充一点,忘了说了,这个是用 go 开发的) 项目代码托管于此:Doozer。 ———————-翻译分割线———————- Doozer 这是什么? Doozer 是高可用的,完整一致性的用于小量、极端重要的数据的存储。当数据变化时,它立刻通知接入的客户端(不缓存),对于那些很少更新,但是希望更新发生时实时性高的客户端来说是非常理想的。Doozer 对于名字服务、主数据库选取和多个...阅读全文

博文 2014-10-09 16:15:18 mikespook

go 实现的socks5服务器端

#####用go写的socks5服务器端代码: 1.默认只支持用户名密码的认证方式(username:abc , password:123),监听 tcp 8083 端口; 2.CMD支持TCP、UDP,不支持BIND,需要的可自行再实现; 3.支持ipv4、domain,目前不支持 ipv6; 4.建议客户端使用 proxycap, proxycap、SocksCap64 测试过能很好支持。(玩LOL,正常游戏)建议客户端不设置服务器端做DNS解析,效率相对会慢些; 5.注意服务端 防火墙 tcp 8083 端口开放及UDP协议全开放; 6.使用时有bug或问题欢迎留言; 7.想尝试用 go 写个简单的客户端,支持 lsp 劫持,配合服务器端做代...阅读全文

谈谈Scala与Go

go的目标是替代c/c++做系统级编程,Scala目标是替代Java做应用级开发 Scala和Go的区别 Keith Morrow作为Scala的支持者,发表了这篇倾向于Scala的文章,主要也是为了反驳一年前 Paul Dix 的文章:why he prefers Go over Node and Scala,Paul Dix认为Go好于Scala的原因在于下面几个方面:并发性, 易理解性, 代码分享和学习难度。之所以时隔一年才有人反驳,一则因为双方不了解,二则可能是随着Go编写的Docker流行,拳头产品的出现让大家对Go刮目相看。 Keith Morrow则认为Go比Scala易于学习是因为Go是一种命令式语言。这相对不习惯函数语言的人来说易于掌握一些。 因为大多数人对于命令式语言比较...阅读全文

博文 2017-06-11 14:03:24 wii95

golang写服务端程序,作为文件上传与下载的服务器。配合HTML5以网页作为用户页面

golang写服务端程序,作为文件上传与下载的服务器。配合HTML5以网页作为用户页面 1.整个工程结构如图: 其中:mainup.go是监听本地等待用户接入实现上传的服务端程序,mainup.exe是相应的可执行文件。 maindown.go是监听本地等待开发者接入实现查看所有上传的文件并且下载删除的服务端程序。 indexup.html是呈献给用户上传文件的网页,indexdown.html是查看所有上传的文件,进行删除下载的服务端程序。 static文件夹里面包含了引用的库 files文件夹存放上传的文档。 2.源码 mainup.go和maindown.go文件都引用了gin包,我这里已经从github上下载到本地了。下载源码后用户记得自己设置下载gin包。 github一直传不上,...阅读全文

博文 2016-06-26 20:00:01 su_sai

Go语言(服务器开发):简易TCP客户端与服务端

Go语言具备强大的服务器开发支持,本文示范了最基础的服务器开发:通过TCP协议实现客户端与服务器的通讯。 一 服务端,为每个客户端新开一个goroutine func ServerBase() { fmt.Println("Starting the server...") //create listener listener, err := net.Listen("tcp", "192.168.1.27:50000") if err != nil { fmt.Println("Error listening:", err.Error()) return } // listen and accept connections from clients: for { conn, err := li...阅读全文

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

服务端开发工程师(go语言)

岗位职责: 负责系统设计和核心代码开发(Go语言开发)。 任职要求: 有良好的编程风格和编写文档的习惯; 熟悉 HTTP、TCP/IP 等常见网络协议,有相关网络编程经验; 两年以上 Go 服务端开发经验优先; 熟悉缓存系统以及消息系统的对接工作实际经验优先。 有较强的责任心和学习能力,能承受一定工作压力。 薪水待遇: 15w起 具体面议 包五险一金 公司地点:浙江省杭州市余杭区仓前街道文一西路1338号海创大厦A座802室 投简历邮箱: shenqiang@aoukj.co...阅读全文

Lambda在Android studio中的相关使用

在Android studio中如何使用lambda? Android studio中怎么操作lambda? Lambda在Android studio中的相关使用 Android Studio使用lambda的相关方法详解 随着Android Studio开发工具的广泛使用,Android studio相关知识的掌握必不可少,比如:lambda。本文小编将和大家分享的就是在一个Android培训网站上看到的有关Android studio中lambda的使用,有兴趣的童鞋可以一起来looklook~~ 熟悉Android的童鞋应该都清楚,在Java8发布以前,Android中是没法用lambda的,但Java8 发布以后,就可以用了。lambda提供了强大的函数式编程...阅读全文

欢迎大家来使用在线 Golang IDE: https://wide.b3log.org

### 特性 * 代码高亮、折叠(Go/HTML/JS/Markdown 等) * 自动补全(基于 gocode) * 格式化(gofmt/goimports, HTML/JSON) * 代码导航(快速打开文件、跳转使用/声明、搜索、大纲视图等) * go get/vet/test * 文件导入/导出 * 多主题 跑一些 _简单的_ 项目已经完全足够了,欢迎大家在体验后[反馈](https://github.com/b3log/wide/issues/new)建议、bug。 ### 使用 * **推荐**直接使用我们搭建的 [Wide 在线服务](https://wide.b3log.org)(“服务器资源这么空闲我都不忍心看了!”) * 我们也提供了...阅读全文

idea安装golang插件(转载)

直奔主题,首先安装Intellj IDEA 15(其它版本也行),可以装免费的社区版,也可以装付费的旗舰版,如果你有钱可以买正版,鉴于还有许多像我一样的穷书生,这里给个旗舰版破解的下载链接:http://pan.baidu.com/s/1o76epDo 密码: 7vjk 博主写这篇文章的时候最新版是15.0.3,但是那个版本暂时无法破解,但是15.0.2可以,下载地址里有破解工具和傻瓜式使用说明,只需三步。 然后开始装golang的插件,插件官网地址是:https://github.com/go-lang-plugin-org/go-lang-idea-plugin 提示:Idea的插件仓库里面本身也有Go,但是版本相对更新很慢,博主写文章的时候Go的版本已更新到1.6,而Idea本身插件仓...阅读全文

博文 2017-12-18 16:00:01 painterQ

四川麻将服务器程序nanoserver

四川麻将玩法, 血战到底(三人模式/四人模式)服务器程序, 房卡模式, 支持俱乐部. 基于[`Nano`](https://github.com/lonnng/nano)开发, 本程序主要用于演示如何使用`nano`进行游戏服务器程序开发, 演示客户端下载地址: iOS: [https://fir.im/tios](https://fir.im/tios) Android: [https://fir.im/tand](https://fir.im/tand) 如果要连接自己的服务器, 可以反编译android的包, 然后修改appConfig.lua中的远程服务器地址, 然后重新打包就可以玩了. 首次运行自动创建MySQL数据库表结构 结构化日志 血战三人玩法/四人玩法完整实现...阅读全文

栈_逆波兰表达式_计算器实现_Golang版本

借助栈与逆波兰表达式 实现一个计算器,编程语言用的是Golang。 逆波兰表达式可以讲复杂的计算过程转化为简单的操作过程,进而得出答案。 比如 (a+b)*(b-c) 按照逆波兰表达式的规则得到 :ab+bc-* 然后将该表达式的字符以及符号,按照从左到右的顺序,依次入栈,一碰到符号则将栈顶前两个元素取出,做运算然后放入栈内,重复该操作,直到表达式结束。 下面将结合栈与逆波兰表达式写一个简易计算器。 运行命令如下 go run counter.go --expression=\(3-5\)*4-\(5*8\)/3+78*9 代码示例: package main import ( "fmt" "strconv" "flag" ) type StackNode struct { Data int...阅读全文

博文 2015-06-17 20:04:05 u012807459

Merkle Tree学习

/*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是很深入,如果有不对的地方,希望各位大神指正*/ Merkle Tree概念 Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。[1] 1. Hash Hash是一个把任意长度的数据映射成固定长度数据的函数[2]。例如,对于数据完整性校验,最简单的方法是对整个数据做Hash运算得到固定长度的Hash值,然后把得到的Hash值公布在网上,这样用...阅读全文

博文 2017-11-24 06:00:05 fengzhiwu

寻找同道人-go语言开发

我们的目标:建立自己的艺术电商平台 我们的语言:golang 我们的要求:热爱go语言。致力于go语言开发。 我们希望你有:2年及以上GoLang开发工作经验,1年以上Golang服务器端开发经验 我们能给你的:可以在GO语言方面得到的提升及发挥,有可以探讨并且共同成长的同事,有施展的平台与空间,富有艺术气息的工作环境,舒适良好的生活环境,当然还有很优渥的薪资待遇。 有意愿的小伙伴,快来联系我吧! QQ:1439922309 0571-8168116...阅读全文

golang emoji表情处理

package util import ( "regexp" "strconv" "strings" ) //表情解码 func UnicodeEmojiDecode(s string) string { //emoji表情的数据表达式 re := regexp.MustCompile("\\[[\\\\u0-9a-zA-Z]+\\]") //提取emoji数据表达式 reg := regexp.MustCompile("\\[\\\\u|]") src := re.FindAllString(s, -1) for i := 0; i < len(src); i++ { e := reg.ReplaceAllString(src[i], "") p, err := strconv.Parse...阅读全文

博文 2017-02-09 17:35:13 赵世亮

关于推送,你可能忽略的那些事儿

推送是维持APP留存率最重要的方法之一,但是大多数APP开发者都没有正确意识到推送的意义,也没有建立起一套评估Push质量的方法。推送是一个典型的双刃剑,如果使用的好可以帮你提升留存率,可是使用不当,甚至滥用将会成为你APP的噩梦。但是不幸的是,我看到的大多是推送的不当使用。 1. 给用户一个允许推送的理由 之前看过一篇文章讲的很好,大概的意思是说你要任何事情的时候都请给一个需要的理由。作为APP开发者我们都知道,用户很少会反悔从前做过的设置。我举个简单的例子,如果用户在最初的时候禁止你访问他的通讯录,可能你就再也没有机会访问他的通讯录了。同理,如果用户最初的时候禁止你的推送消息,那么你可能就再也没有机会去为用户发送推送通知了。 所以在希望用户授予推送权限时,一定要给用户一个清...阅读全文

当GOLang遇到大量ESTABLISHED时

当go程序(两个GO程序互为服务端、客户端)运行一段时间后,使用netstat -a查看,就出现大量ESTABLISHED的连接,且久久保持不断开。 一般来说就是在进行HTTP(TCP)调用时没有断开或者说关闭连接造成的。 经过排查,确实是有作为客户端的go程序没有主动进行关闭HTTP请求。 resq,err := http.get(url) 应显式调用:resq.Body.Close() 有些调用是不需要获取结果的,以为不调用resq.Body.Close()也没有关系。 还有就是文件下载,作为客户端一边的程序下载完后resq.Body.Close(),与服务端的连接依然没有关闭,大量ESTABLISHED存在 不知道为什么……不过后来找了一些TCP,HTTP协议的一些文章看,懵懵懂懂地在...阅读全文

博文 2016-02-15 10:00:02 rariki

Go1.10 支持 HTTPS 代理

Go1.9 出来后 6 个多月的时间,Go1.10 就被[发布](https://blog.golang.org/go1.10)。新版本带来大大小小的变化([发行说明](https://golang.org/doc/go1.10)),但是我想谈谈有关 `net/http` 包的改变。1.10 版本支持在 HTTPS([commit](https://github.com/hyangah/go/commit/ab0372d91c17ca97a8258670beadadc6601d0da2)) 上的代理,而在原来它只能通过使用普通的(未加密)HTTP 来和代理进行沟通。接下来让我们来看看它是否真的可以工作。 ## Server 为了验证这一改变,首先请用 golang 启动一个简单的 HTTP(...阅读全文