forked from ringcentral/pubnub-jtools
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPubnub.java
More file actions
171 lines (147 loc) · 4.82 KB
/
Copy pathPubnub.java
File metadata and controls
171 lines (147 loc) · 4.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
package com.pubnub.api;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.UUID;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import static com.pubnub.api.PubnubError.*;
import static com.pubnub.api.PubnubUtil.*;
/**
* Pubnub object facilitates querying channels for messages and listening on
* channels for presence/message events
*
* @author Pubnub
*
*/
public class Pubnub extends PubnubCoreShared {
public Pubnub() {
}
/**
* Pubnub Constructor
*
* @param publish_key
* Publish Key
* @param subscribe_key
* Subscribe Key
* @param secret_key
* Secret Key
* @param cipher_key
* Cipher Key
* @param ssl_on
* SSL on ?
*/
public Pubnub(String publish_key, String subscribe_key, String secret_key,
String cipher_key, boolean ssl_on) {
super(publish_key, subscribe_key, secret_key, cipher_key, ssl_on);
}
/**
* Pubnub Constructor
*
* @param publish_key
* Publish key
* @param subscribe_key
* Subscribe Key
* @param secret_key
* Secret Key
* @param ssl_on
* SSL on ?
*/
public Pubnub(String publish_key, String subscribe_key, String secret_key,
boolean ssl_on) {
super(publish_key, subscribe_key, secret_key, "", ssl_on);
}
/**
* Pubnub Constructor
*
* @param publish_key
* Publish Key
* @param subscribe_key
* Subscribe Key
*/
public Pubnub(String publish_key, String subscribe_key) {
super(publish_key, subscribe_key, "", "", false);
}
/**
* @param publish_key
* Publish Key
* @param subscribe_key
* Subscribe Key
* @param ssl
*/
public Pubnub(String publish_key, String subscribe_key, boolean ssl) {
super(publish_key, subscribe_key, "", "", ssl);
}
/**
* @param publish_key
* @param subscribe_key
* @param secret_key
*/
public Pubnub(String publish_key, String subscribe_key, String secret_key) {
super(publish_key, subscribe_key, secret_key, "", false);
}
/**
*
* Constructor for Pubnub Class
*
* @param publish_key
* Publish Key
* @param subscribe_key
* Subscribe Key
* @param secret_key
* Secret Key
* @param cipher_key
* Cipher Key
* @param ssl_on
* SSL enabled ?
* @param initialization_vector
* Initialization vector
*/
public Pubnub(String publish_key, String subscribe_key,
String secret_key, String cipher_key, boolean ssl_on, String initialization_vector) {
super(publish_key, subscribe_key, secret_key, cipher_key, ssl_on, initialization_vector);
}
protected String getUserAgent() {
return "Java/" + VERSION;
}
public static class Builder
{
private String domain;
private String origin;
private String publishKey = "";
private String subscribeKey = "";
private String secretKey = "";
private String cipherKey = "";
private String authKey;
private String uuid;
private boolean cacheBusting;
private boolean ssl;
public Builder setDomain(String domain) { this.domain = domain; return this; }
public Builder setOrigin(String origin) { this.origin = origin; return this; }
public Builder setPublishKey(String publishKey) { this.publishKey = publishKey; return this; }
public Builder setSubscribeKey(String subscribeKey) { this.subscribeKey = subscribeKey; return this; }
public Builder setSecretKey(String secretKey) { this.secretKey = secretKey; return this; }
public Builder setCipherKey(String cipherKey) { this.cipherKey = cipherKey; return this; }
public Builder setAuthKey(String authKey) { this.authKey = authKey; return this; }
public Builder setUuid(String uuid) { this.uuid = uuid; return this; }
public Builder setSsl(boolean ssl) { this.ssl = ssl; return this; }
public Pubnub build()
{
Pubnub pubnub = new Pubnub();
pubnub.setPublishKey(publishKey);
pubnub.setSubscribeKey(subscribeKey);
pubnub.setSecretKey(secretKey);
pubnub.setCipherKey(cipherKey);
pubnub.setSSL(ssl);
pubnub.init();
pubnub.initAsync();
return pubnub;
}
}
}