写点什么

字节跳动《实时音视频通讯技术》学习笔记之服务器端开发入门

用户头像
Regan Yue
关注
发布于: 2021 年 08 月 20 日
字节跳动《实时音视频通讯技术》学习笔记之服务器端开发入门

字节跳动《实时音视频通讯技术》学习笔记之服务器端开发入门

Git 基础知识

  • Workspace 工作区,本地目录,平时存放代码的地方

  • Index/Stage 暂存区,用于临时存放你的改动,保存即将提交的文件列表信息。

  • Repository: 仓库区(或版本库),就是安全存放数据的位置。

  • Remote: 远程仓库,托管代码的服务器,项目组中的远程服务器。



Git 工具——简单使用

1. 初始化操作

//只需要执行一次


git config --global user.name "myname"


git config --global user.email "myemail@bytedance.com"


git config -l //查看 config 信息

2. checkout 远程代码

git clone https://xxx


// 将远程 master 分支 checkout 成本地 feat 分支


git checkout origin/master -b feat

3. 修改代码,查看 diff

git diff 查看 diff,也就是修改后的代码与原始的代码的区别。


git status 查看文件状态

4. 提交到本地仓库

git add filename


git commit -m "init the project"

5. push 到远程仓库

//将本地 mymaster 分支 push 到远端


git push origin mymaster

6. 查看历史提交

git log xxx // 查看文件提交记录


git log ./ // 查看目录下文件的提交记录

7. 查看分支信息

git branch //查看本地分支信息


git branch -r //查看远端(remote)分枝信息


git branch -D xxx //删除本地 branch


git branch -m yyy //branch 修改名字

8.本地修改全部回退

git reset --hard

9. 同步远端代码到本地

git fetch


git rebase [branch]

Golang 发展历程


Go 名字的来源


发展时间线


Golang 对比其他语言

Go 希望成为互联网时代的 C 语言。多数系统级语言的根本哲学来源于 C++,将 C++的面向对象进一步发扬光大。但是 Go 语言的设计者却有不同的看法,他们认为值得学习的是 C 语言。C 语言经久不衰的根源是它足够简单。因此,Go 语言也是足够简单。


  • 编译部署简单:不依赖其他库,编译出来就是一个可执行文件。


所以编译起来特别快!!!


  • 统一的编码规范,代码简介,方便阅读。

  • 严格的编译检查,不用的 import 或者变量引起编译错误。

  • interface 不需要显式的声明

  • 内置强大的工具,如gofmt,goprof

  • 自动内存回收

  • 强一致类型

  • 没有异常处理(Error is value)

  • 基于首字母的可访问特性,例如变量首字母是大写,就是全局变量。

  • 支持直接调用 C 代码


p.s. Go 应该是快出泛型了,博主之前翻译过一篇博客《下一步:Go 泛型》就是说明的这个信息。

Golang 与 C 语言的区别

Golang 综合实战-websocket 客户端登陆

websocket 客户端登陆

websocket协议在 2008 年诞生,2011 年成为国际标准.


它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息.



package main
import ( "fmt" gosocketio "github.com/graarh/golang-socketio" "github.com/graarh/golang-socketio/transport" "time")//结构体定义type User struct { ID string `json:"id"` RoomID string `json:"room_id"` Name string `json:"name"` AvatarURL string `json:"avatarUrl"` Type string `json:"type"` Address string `json:"address"` LoginTime string `json:"login_time"`}
func main() { //连接服务器 c,err := gosocketio.Dial( gosocketio.GetUrl("127.0.0.1",3001,false), transport.GetDefaultWebsocketTransport()) if err != nil{ fmt.Printf("websocket connect error:%v\n",err) return }
fmt.Println("connect success!") //注册response回调 c.On("success", func(c *gosocketio.Channel,v interface{}) { fmt.Println("success:",v) }) //emit信息 go func() { c.Emit("login",User{ ID : "user", RoomID : "roomid", Name : "rtcname0", AvatarURL: "http://q.qlogo.cn/headimg_dl?dst_uin=5684277&spec=100", Type : "user", })
if err != nil{ fmt.Println("emit error:",err) } }()
time.Sleep(5*time.Second) fmt.Println("finished...")}
复制代码


发布于: 2021 年 08 月 20 日阅读数: 9
用户头像

Regan Yue

关注

还未添加个人签名 2020.08.12 加入

还未添加个人简介

评论

发布
暂无评论
字节跳动《实时音视频通讯技术》学习笔记之服务器端开发入门