2023-01-18|閱讀時間 ‧ 約 4 分鐘

Day 3 : 初次接觸WebRTC

Introduction to WebRTC

由於之後想要做的專題是跟即時視訊相關,在開始作業前想對webrtc有些基本的了解,結果就是一踏入了解就發現這個水深的可怕,之後每天除了寫一點go,也會花時間學習這個協定。WebRTC是個用於瀏覽器之間溝通的協定,透過NAT Traversal(STUN、TURN)的技術讓我們可以在不知道public ip的情況下,NAT建立的temporary role連接兩個使用者。

Go one more

json是目前前後端常用於交換資料的方式,在go的gin框架裡面,通常會將我們所需要的json資料先定義一個struct,並綁定json屬性,接者使用ShouldBindJSON來取得已綁定的json的參數。
// 定義一個結構體,其屬性是json
type Member struct{
 	Id  int8 `json:"id" binding:"required"`
 	Name string `json:"name" binding:"required"`
 	Password string `json:"password" binding:"required,min=8"` 
}
func main(){ 	
  var router = gin.Default() 	
  var port = ":8080" 	
  router.POST("/member",func(c *gin.Context){ 
    var member Member
     fmt.Println(member)
     if err :=c.ShouldBindJSON(&member);err !=nil{
 	  c.String(http.StatusBadRequest,err.Error())
 	  return
 	  } 		
    c.JSON(http.StatusOK, gin.H{
 	  "ID": member.Id,
 	  "Name": member.Name,
 	  "Password": member.Password,
 	}) 	
  }) 		
  router.Run(port)
  }
過postman進行測試,header的content-type選擇application/json,接著在body裡面輸入json格式的資料,並server收到且可成功解析

後記

雖然很喜歡vocus的配色,但今天第一次嘗試在這寫比較多code,發現超級不適合...,可能這邊的定位不應該放在程式分享,從明天開始要把這系列文章放到hackMD或是Obsidian吧~

Ref.

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.