https://github.com/suifengtec/go_aliyun_mns
go_aliyun_mns
https://github.com/suifengtec/go_aliyun_mns
go golang mns
Last synced: 3 months ago
JSON representation
go_aliyun_mns
- Host: GitHub
- URL: https://github.com/suifengtec/go_aliyun_mns
- Owner: suifengtec
- Created: 2019-09-24T15:32:53.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-05T07:29:52.000Z (over 5 years ago)
- Last Synced: 2025-01-26T18:17:31.614Z (5 months ago)
- Topics: go, golang, mns
- Language: Go
- Size: 9.77 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 阿里云 MNS 的 Golang 封装
## 拉过来
```bash
go get -u github.com/suifengtec/go_aliyun_mns/mns
```
## 使用
```go
package main
import (
"encoding/xml"
"fmt"
"github.com/suifengtec/go_aliyun_mns/mns"
)var (
AliYunAccessKeyId = "LT***bw"
AliYunAccessKeySecret = "gF3***z5tAe"
AliYunMnsEndpoint = "1***37.mns.cn-shanghai.aliyuncs.com"
AliYunMnsQueueName = "n***ForNewOrder"
)func send() {
client := mns.NewClient(AliYunAccessKeyId, AliYunAccessKeySecret, AliYunMnsEndpoint)
queue := mns.Queue{
Client: client,
QueueName: AliYunMnsQueueName,
Base64: false,
}msg := mns.Message{MessageBody: "世界,你好"}
data, err := xml.Marshal(msg)
if err != nil {
fmt.Println(err)
}msgId, err2 := queue.Send(mns.GetCurrentUnixMicro(), data)
if err2 != nil {
fmt.Println(err2)
} else {
fmt.Printf("send message=>%v", msgId)
fmt.Println()
}}
func receive() {
client := mns.NewClient(AliYunAccessKeyId, AliYunAccessKeySecret, AliYunMnsEndpoint)
queue := mns.Queue{
Client: client,
QueueName: AliYunMnsQueueName,
Base64: false,
}
respChan := make(chan mns.MsgReceive)
errChan := make(chan error)
end := make(chan int)
receiptHandle := ""go func() {
select {
case resp := <-respChan:
{
fmt.Printf("receive message=>%v", resp)
receiptHandle = resp.ReceiptHandle
end <- 1
}
case err := <-errChan:
{
fmt.Println(err)
end <- 0
}
}
}()queue.Receive(respChan, errChan)
received := <-endif received == 1 {
msgDelete(receiptHandle)
}}
func msgDelete(receiptHandle string) {
client := mns.NewClient(AliYunAccessKeyId, AliYunAccessKeySecret, AliYunMnsEndpoint)
queue := mns.Queue{
Client: client,
QueueName: AliYunMnsQueueName,
Base64: false,
}
errChan := make(chan error)
end := make(chan int)
go func() {
select {
case err := <-errChan:
{
if err != nil {fmt.Println(err)
end <- 0
} else {fmt.Println()
fmt.Println("deletesuccess=>" + receiptHandle)
end <- 1
}
}
}
}()queue.Delete(receiptHandle, errChan)
<-end
}func main() {
fmt.Println("Aliyun MNS")
//send()
receive()}
```