As the title says all functions in https://github.com/pubnub/go/blob/master/pubnubMessaging/pubnub.go are public making it impossible to determine which ones are part of the internal workings of the Go client implementation and which are part of the API. In Go public functions are ones that start with an uppercase letter, private ones are those that start with a lowercase one.
Looking at the code, it could do with a rewrite to make it more Go idiomatic. I would advise removing any API dependence on Go channels and doing something like the websocket implementation http://godoc.org/code.google.com/p/go.net/websocket