golang websocket 聊天室demo

近期偶然的机会看到一些go的websocket技术方案,顺便写了个demo,玩了一下: 首先安装websocket包 go get code.google.com/p/go.net/websocket   websocket 聊天室代码: package main      import (     "fmt"     "io"     "bufio"     "net/http"     "code.google.com/p/go.net/websocket"     "container/l...阅读全文

2013-06-04 10:24 bozhang
阅读:3605 评论:0

Golang文件操作整理

最近做的一点事情,用到了golang中不少文件操作的相关内容,创建,删除,遍历,压缩之类的,这里整理整理,希望能掌握的系统一点,把模糊的地方理清楚。 基本操作 文件创建 创建文件的时候,一定要注意权限问题,一般默认的文件权限是 0666 关于权限的相关内容,具体可以参考鸟叔p141 这里还是再回顾下,文件属性 r w x r w x r w x,第一位是文件属性,一般常用的 "-" 表示的是普通文件,"d"表示的是目录,golang里面使用os.Create创建文件的时候貌似只能使用0xxx的形...阅读全文

2015-05-27 17:05 Goden
阅读:20691 评论:0

Go 语言中的 new() 和 make()的区别

本文是看了文章之后的心得。 在此感谢。 概述 Go 语言中的 new 和 make 一直是新手比较容易混淆的东西,咋一看很相似。不过解释两者之间的不同也非常容易。 他们所做的事情,和应用的类型也不相同。 二者都是用来分配空间。 new 函数 new 是内建函数,函数原型为 func new(Type) *Type 官方文档描述为: The new build-in function allocates memory(仅仅分配空间). The first argument is a type, n...阅读全文

2015-03-23 09:36 xiaorenwuzyh
阅读:37882 评论:4

Go语言开发分布式聊天室

声明 我是一个刚学go语言的菜鸟,还没有资格谈论什么技术分享,只是为了展示fooking的实际应用,同时把我用go写的聊天室代码贴出来供大家消遣,如果有入不了各位法眼的代码,望轻喷。该聊天室基于fooking,而业务代码是采用Go + Fastcgi。 完整的源代码在 https://github.com/scgywx/fooking/blob/master/example/chat/gateway.go,全代码200多行,去掉router部分代码,实际逻辑代码只有170来行,逻辑简单,功能强大...阅读全文

2015-08-28 14:43 IM鑫爷
阅读:10587 评论:3

进程、线程、轻量级进程、协程与 go 的 goroutine【转载+整理】

本文内容 进程 线程 协程 Go 中的 goroutine 参考资料 最近,看一些文章,提到“协程”的概念,心想,进程,线程,协程,前两个很容易,任何一本关于操作系统的书都有说,开发时也经常用,但是协程呢?之前也遇到这个词,但是今天,查了一下资料。下面是一个人的总结。 电话面试被问到go的协程……虽然用 python 时候在 Eurasia 和 eventlet 里了解过协程,但自己对协程的概念也就是轻量级线程,还有一个很通俗的红绿灯说法:线程要守规则,协程看到红灯但是没有车仍可以通行。现在总结...阅读全文

2015-10-13 17:30 liuning8023
阅读:3919 评论:1

golang-beego-websocket 聊天室

golang-websocket的聊天室 最近因为微信断网然后找不到某个朋友联系方式,搞得后面一些事情很烦~~ 就想自己搭个聊天服务器,于是自己设计一个简介的UI,然后用beego做框架,写了一个聊天webapp, (在beego官方已有的一个聊天室demo的基础上进行了修改,更改了UI,加入了房间的功能) git:github网站:http://keychat.online 进入界面 聊天界面 说明 基于golang的匿名聊天室程序 随意输入用户名 和 房间号,会根据房间号进入聊天室聊天所有的...阅读全文

2016.11.14 08:10* cowkeys
阅读:3505 评论:0

使用 caddy 作为微服务的 API gateway

背景 大家都知道,Docker这些年让IT界产生了深刻的变革,从开发到测试到运维,处处都有它的身影。它同时也和微服务架构相互促进,并肩前行。 在最新版的 Docker(CE 17.03) 里,随着 swarm mode 的成熟,在较简单的场景里已经可以不再需要专门的基础设施管理,服务编排,服务发现,健康检查,负载均衡等等。 但是API gateway还是需要一个的。或许再加上一个日志收集,你的微服务架构就五脏俱全了。我们知道Nginx Plus是可以很好的胜任 API gateway 的工作的,...阅读全文

2017.03.18 12:11 Muninn
阅读:3255 评论:0

如何泄漏一个协程然后修复它

很多 go 语言开发者都知道这句格言,[永远不要启动一个你不知道如何停止的协程](https://dave.cheney.net/2016/12/22/never-start-a-goroutine-without-knowing-how-it-will-stop),但是泄漏一个协程还是超级的简单。让我们看一种常碰到的泄漏协程的方式,然后修复它。 为了实现这个,我们先建立一个包含一个自定义 `map` 类型的库,这个 `map` 类型的 key 在经过了一段可配置的时间后过期。我们把这个库...阅读全文

阅读:1630 评论:0

迁移到 mod 只需 3 个步骤

本文的目的是演示如何轻松地将带有 vendor 目录的旧项目迁移到使用 Go mod 的新项目。 ![](https://raw.githubusercontent.com/studygolang/gctt-images/master/migrating-to-go/1_a-NrrpFPmj-_JQGulalCdQ.png) 我不打算一一列举相对于使用依赖关系关联工具,使用 Go modules 的优势,因为在互联网上有几篇关于这方面的文章。另一方面,**我将指导您如何迁移项目**。...阅读全文

2019-01-17 22:47:18 sgsgy5
阅读:4228 评论:2

用Go建千亿级微服务 分析详细,适合新手理解概念

今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。 Go 构建微服务的历程 在2015年之前,头条的主要编程语言是 Python 以及部分 C++。随着业务和流量的快速增长,服务端的压力越来越大,随之而来问题频出。Python 的解释性语言特性以及其落后的多进程服务模型受到了巨大的挑战。此外,当时的服务端架构是一个典型的单体架构,耦合严重,部分独立功能也急需从单体架构中拆出...阅读全文

2018年09月18日 10:40:57 aa1215018028
阅读:1906 评论:0

Go语言打造分布式Crontab 轻松搞定高性能任务调度

Go语言开发分布式任务调度 轻松搞定高性能CrontabGolang因其强大的协程机制,现已广泛应用于解决分布式环境下的高并发问题。本门课程中将结合Etcd与MongoDB实现一个基于Master-Worker分布式架构的任务调度系统。你不仅将掌握Golang的工程实践能力,而且会收获诸如CAP、Raft的分布式经典理论与架构经验,”工程能力”与”知识体系”齐头并进,实现华丽质变第1章 课程介绍本章中将介绍一下本课程的基本内容,包括:我们要做什么、要求什么基础、将学会哪些工具、收获哪些独家干货,...阅读全文

2019.05.04 17:16 为了谁你知道
阅读:1431 评论:0