本文整理汇总了Golang中github.com/pubnub/go/gae/messaging.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: hereNow
func hereNow(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
channel := q.Get("ch")
uuid := q.Get("uuid")
hereNowShowUUID := q.Get("showUUID")
hereNowIncludeUserState := q.Get("includeUserState")
disableUUID := false
includeUserState := false
if hereNowShowUUID == "1" {
disableUUID = true
}
if hereNowIncludeUserState == "1" {
includeUserState = true
}
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
//c := context.NewContext(r)
c := createContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
go pubInstance.HereNow(c, w, r, channel, disableUUID, includeUserState, successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "HereNow")
}
示例2: TestSuccessCodeAndInfo
// TestSuccessCodeAndInfo sends out a message to the pubnub channel
// The response is parsed and should match the 'sent' status.
// _publishSuccessMessage is defined in the common.go file
func TestSuccessCodeAndInfo(t *testing.T) {
context, err := aetest.NewContext(nil)
if err != nil {
t.Fatal(err)
}
defer context.Close()
uuid := ""
w, req := InitAppEngineContext(t)
pubnubInstance := messaging.New(context, uuid, w, req, PubKey, SubKey, "", "", false)
//pubnubInstance := messaging.NewPubnub(PubKey, SubKey, "", "", false, "")
channel := "testChannel"
message := "Pubnub API Usage Example"
returnChannel := make(chan []byte)
errorChannel := make(chan []byte)
responseChannel := make(chan string)
waitChannel := make(chan string)
//go pubnubInstance.Publish(channel, message, returnChannel, errorChannel)
go pubnubInstance.Publish(context, w, req, channel, message, returnChannel, errorChannel)
go ParsePublishResponse(returnChannel, channel, publishSuccessMessage, "SuccessCodeAndInfo", responseChannel)
go ParseErrorResponse(errorChannel, responseChannel)
go WaitForCompletion(responseChannel, waitChannel)
ParseWaitResponse(waitChannel, t, "SuccessCodeAndInfo")
time.Sleep(2 * time.Second)
}
示例3: TestSuccessCodeAndInfoForComplexMessage
// TestSuccessCodeAndInfoForComplexMessage sends out a complex message to the pubnub channel
// The response is parsed and should match the 'sent' status.
// _publishSuccessMessage and customstruct is defined in the common.go file
func TestSuccessCodeAndInfoForComplexMessage(t *testing.T) {
context, err := aetest.NewContext(nil)
if err != nil {
t.Fatal(err)
}
defer context.Close()
uuid := ""
w, req := InitAppEngineContext(t)
pubnubInstance := messaging.New(context, uuid, w, req, PubKey, SubKey, "", "", false)
//pubnubInstance := messaging.NewPubnub(PubKey, SubKey, "", "", false, "", "", false)
channel := "testChannel"
customStruct := CustomStruct{
Foo: "hi!",
Bar: []int{1, 2, 3, 4, 5},
}
returnChannel := make(chan []byte)
errorChannel := make(chan []byte)
responseChannel := make(chan string)
waitChannel := make(chan string)
//go pubnubInstance.Publish(channel, customStruct, returnChannel, errorChannel)
go pubnubInstance.Publish(context, w, req, channel, customStruct, returnChannel, errorChannel)
go ParsePublishResponse(returnChannel, channel, publishSuccessMessage, "SuccessCodeAndInfoForComplexMessage", responseChannel)
go ParseErrorResponse(errorChannel, responseChannel)
go WaitForCompletion(responseChannel, waitChannel)
ParseWaitResponse(waitChannel, t, "SuccessCodeAndInfoForComplexMessage")
time.Sleep(2 * time.Second)
}
示例4: TestNullMessage
// TestNullMessage sends out a null message to a pubnub channel. The response should
// be an "Invalid Message".
func TestNullMessage(t *testing.T) {
context, err := aetest.NewContext(nil)
if err != nil {
t.Fatal(err)
}
defer context.Close()
uuid := ""
w, req := InitAppEngineContext(t)
pubnubInstance := messaging.New(context, uuid, w, req, PubKey, SubKey, "", "", false)
//pubnubInstance := messaging.NewPubnub(PubKey, SubKey, "", "", false, "")
channel := "testChannel"
var message interface{}
message = nil
returnChannel := make(chan []byte)
errorChannel := make(chan []byte)
responseChannel := make(chan string)
waitChannel := make(chan string)
//go pubnubInstance.Publish(channel, message, returnChannel, errorChannel)
go pubnubInstance.Publish(context, w, req, channel, message, returnChannel, errorChannel)
//go ParsePublishResponse(returnChannel, channel, "Invalid Message", "NullMessage", responseChannel)
go ParseResponseDummy(returnChannel)
go ParseErrorResponseForTestSuccess("Invalid Message", errorChannel, responseChannel)
//go ParseErrorResponse(errorChannel, responseChannel)
go WaitForCompletion(responseChannel, waitChannel)
ParseWaitResponse(waitChannel, t, "NullMessage")
}
示例5: TestServerTime
// TestServerTime calls the GetTime method of the messaging to test the time
func TestServerTime(t *testing.T) {
/*context, err := aetest.NewContext(nil)
if err != nil {
t.Fatal(err)
}
defer context.Close()*/
inst, err := aetest.NewInstance(&aetest.Options{"", true})
context := CreateContext(inst)
if err != nil {
t.Fatal(err)
}
defer inst.Close()
uuid := ""
w, req := InitAppEngineContext(t)
pubnubInstance := messaging.New(context, uuid, w, req, PubKey, SubKey, "", "", false)
//pubnubInstance := messaging.NewPubnub(PubKey, SubKey, "", "", false, "")
returnTimeChannel := make(chan []byte)
errorChannel := make(chan []byte)
responseChannel := make(chan string)
waitChannel := make(chan string)
//go pubnubInstance.GetTime(returnTimeChannel, errorChannel)
go pubnubInstance.GetTime(context, w, req, returnTimeChannel, errorChannel)
go ParseTimeResponse(returnTimeChannel, responseChannel)
go ParseErrorResponse(errorChannel, responseChannel)
go WaitForCompletion(responseChannel, waitChannel)
ParseWaitResponse(waitChannel, t, "Time")
}
示例6: grantSubscribe
func grantSubscribe(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
ch := q.Get("ch")
read := q.Get("r")
write := q.Get("w")
ttl := q.Get("ttl")
bRead := false
if read == "1" {
bRead = true
}
bWrite := false
if write == "1" {
bWrite = true
}
iTTL := 1440
if ival, err := strconv.Atoi(ttl); err == nil {
iTTL = ival
}
uuid := q.Get("uuid")
c := appengine.NewContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
go pubInstance.GrantSubscribe(c, w, r, ch, bRead, bWrite, iTTL, successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Revoke Subscribe")
}
示例7: getAuthKey
func getAuthKey(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
uuid := q.Get("uuid")
c := appengine.NewContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
sendResponseToChannel(w, "Auth key: "+pubInstance.GetAuthenticationKey(), r, uuid)
}
示例8: revokeSubscribe
func revokeSubscribe(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
ch := q.Get("ch")
uuid := q.Get("uuid")
c := appengine.NewContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
go pubInstance.GrantSubscribe(c, w, r, ch, false, false, 0, successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Revoke Subscribe")
}
示例9: setAuthKey
func setAuthKey(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
authKey := q.Get("authkey")
uuid := q.Get("uuid")
//c := context.NewContext(r)
c := createContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
pubInstance.SetAuthenticationKey(c, w, r, authKey)
sendResponseToChannel(w, "Auth key set", r, uuid)
}
示例10: auditPresence
func auditPresence(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
ch := q.Get("ch")
uuid := q.Get("uuid")
//c := context.NewContext(r)
c := createContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
go pubInstance.AuditPresence(c, w, r, ch, "", successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Audit Presence")
}
示例11: whereNow
func whereNow(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
whereNowUUID := q.Get("whereNowUUID")
uuid := q.Get("uuid")
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
c := appengine.NewContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
go pubInstance.WhereNow(c, w, r, whereNowUUID, successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "WhereNow")
}
示例12: deleteUserState
func deleteUserState(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
ch := q.Get("ch")
key := q.Get("k")
uuid := q.Get("uuid")
c := appengine.NewContext(r)
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
go pubInstance.SetUserStateKeyVal(c, w, r, ch, key, "", successChannel, errorChannel)
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Del User State")
}
示例13: DetailedHistoryFor10Messages
// DetailedHistoryFor10Messages is a common method used by both TestDetailedHistoryFor10EncryptedMessages
// and TestDetailedHistoryFor10Messages to publish's 10 messages to a pubnub channel, and after that
// call the history method of the messaging package to fetch last 10 messages. These received
// messages are compared to the messages sent and if all match test is successful.
func DetailedHistoryFor10Messages(t *testing.T, cipherKey string, testName string) {
numberOfMessages := 10
startMessagesFrom := 0
/*context, err := aetest.NewContext(nil)
if err != nil {
t.Fatal(err)
}
defer context.Close()
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/", nil)*/
//context, err := aetest.NewContext(nil)
//req, _ := http.NewRequest("GET", "/", nil)
inst, err := aetest.NewInstance(&aetest.Options{"", true})
context := CreateContext(inst)
if err != nil {
t.Fatal(err)
}
//defer context.Close()
defer inst.Close()
uuid := ""
w, req := InitAppEngineContext(t)
//pubnubInstance := messaging.NewPubnub(PubKey, SubKey, SecKey, cipherKey, false, "")
pubnubInstance := messaging.New(context, uuid, w, req, PubKey, SubKey, SecKey, "", false)
message := "Test Message "
r := GenRandom()
channel := fmt.Sprintf("testChannel_dh_%d", r.Intn(20))
messagesSent := PublishMessages(context, w, req, pubnubInstance, channel, t, startMessagesFrom, numberOfMessages, message)
if messagesSent {
returnHistoryChannel := make(chan []byte)
errorChannel := make(chan []byte)
responseChannel := make(chan string)
waitChannel := make(chan string)
//go pubnubInstance.History(channel, numberOfMessages, 0, 0, false, returnHistoryChannel, errorChannel)
go pubnubInstance.History(context, w, req, channel, numberOfMessages, 0, 0, false, returnHistoryChannel, errorChannel)
go ParseHistoryResponseForMultipleMessages(returnHistoryChannel, channel, message, testName, startMessagesFrom, numberOfMessages, cipherKey, responseChannel)
go ParseErrorResponse(errorChannel, responseChannel)
go WaitForCompletion(responseChannel, waitChannel)
ParseWaitResponse(waitChannel, t, testName)
} else {
t.Error("Test '" + testName + "': failed.")
}
}
示例14: detailedHistory
func detailedHistory(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
ch := q.Get("ch")
uuid := q.Get("uuid")
start := q.Get("start")
var iStart int64
if strings.TrimSpace(start) != "" {
bi := big.NewInt(0)
if _, ok := bi.SetString(start, 10); !ok {
iStart = 0
} else {
iStart = bi.Int64()
}
}
end := q.Get("end")
var iEnd int64
if strings.TrimSpace(end) != "" {
bi := big.NewInt(0)
if _, ok := bi.SetString(end, 10); !ok {
iEnd = 0
} else {
iEnd = bi.Int64()
}
}
limit := q.Get("limit")
reverse := q.Get("reverse")
iLimit := 100
if ival, err := strconv.Atoi(limit); err == nil {
iLimit = ival
}
bReverse := false
if reverse == "1" {
bReverse = true
}
// ctx := context.NewContext(r)
ctx := createContext(r)
pubInstance := messaging.New(ctx, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
go pubInstance.History(ctx, w, r, ch, iLimit, iStart, iEnd, bReverse, successChannel, errorChannel)
handleResult(ctx, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Detailed History")
}
示例15: publish
func publish(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
message := q.Get("m")
uuid := q.Get("uuid")
ch := q.Get("ch")
fire := q.Get("fire")
//meta, _ := url.QueryUnescape(q.Get("meta"))
metaKey := q.Get("metakey")
metaVal := q.Get("metaval")
storeInHistory := q.Get("storeInHistory")
storeInHistoryBool := false
if storeInHistory == "1" {
storeInHistoryBool = true
}
errorChannel := make(chan []byte)
successChannel := make(chan []byte)
meta := make(map[string]string)
if strings.TrimSpace(metaKey) != "" && strings.TrimSpace(metaVal) != "" {
meta[metaKey] = metaVal
} else {
meta = nil
}
//c := context.NewContext(r)
c := createContext(r)
/*message1 := make(map[string]string)
message1["author"] = "user-a"
message1["status"] = "I am reading about Advanced Channel Groups!"
message1["timestamp"] = time.Now().String()*/
pubInstance := messaging.New(c, uuid, w, r, publishKey, subscribeKey, secretKey, "", false)
//go pubInstance.Publish(c, w, r, "my_channel", message1, successChannel, errorChannel)
if fire == "1" {
go pubInstance.Fire(c, w, r, ch, message, false, successChannel, errorChannel)
} else if meta != nil {
log.Infof(c, fmt.Sprintf("Meta: %s", meta))
go pubInstance.PublishExtendedWithMeta(c, w, r, ch, message, meta, storeInHistoryBool, false, successChannel, errorChannel)
} else if storeInHistoryBool {
go pubInstance.PublishExtended(c, w, r, ch, message, storeInHistoryBool, false, successChannel, errorChannel)
} else {
go pubInstance.Publish(c, w, r, ch, message, successChannel, errorChannel)
}
handleResult(c, w, r, uuid, successChannel, errorChannel, messaging.GetNonSubscribeTimeout(), "Publish")
}