Skip to content

Commit e7bd45a

Browse files
committed
Added model to represent auth channel, it provides way to pass auth token
while subscribing to channel
1 parent 858519f commit e7bd45a

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

Sources/ScClient/Models/Event.swift

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ class ReceiveEvent : HandyJSON {
2121
var data : AnyObject?
2222
var error : AnyObject?
2323
var rid : Int!
24-
2524

2625
convenience init(data : AnyObject? , error : AnyObject?, rid : Int) {
2726
self.init()
@@ -38,8 +37,6 @@ class Channel : HandyJSON{
3837
var channel : String!
3938
var data : AnyObject?
4039

41-
42-
4340
init(channel : String, data : AnyObject?) {
4441
self.channel = channel
4542
self.data = data
@@ -49,6 +46,30 @@ class Channel : HandyJSON{
4946
}
5047
}
5148

49+
class AuthChannel : HandyJSON{
50+
var channel : String!
51+
var data : ChannelData?
52+
53+
init(channel : String, token: String?) {
54+
self.channel = channel
55+
self.data = ChannelData(jwt: token)
56+
}
57+
58+
required init() {
59+
}
60+
}
61+
62+
class ChannelData: HandyJSON {
63+
var jwt: String?
64+
65+
init(jwt: String?) {
66+
self.jwt = jwt
67+
}
68+
69+
required init() {
70+
}
71+
}
72+
5273
class AuthData : HandyJSON{
5374
var authToken : String?
5475

@@ -101,6 +122,10 @@ class Model {
101122
return EmitEvent(event: "#subscribe", data: Channel(channel: channelName, data :nil) as AnyObject, cid: messageId)
102123
}
103124

125+
public static func getSubscribeEventObject(channelName : String, messageId : Int, token: String? = nil) -> EmitEvent{
126+
return EmitEvent(event: "#subscribe", data: AuthChannel(channel: channelName, token: token) as AnyObject, cid: messageId)
127+
}
128+
104129
public static func getUnsubscribeEventObject(channelName : String, messageId : Int) -> EmitEvent{
105130
return EmitEvent(event: "#unsubscribe", data: Channel(channel: channelName, data :nil) as AnyObject, cid: messageId)
106131
}

Sources/ScClient/client.swift

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public class ScClient : Listener, WebSocketDelegate {
3939
}
4040

4141
public func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
42-
print("got some text: \(text)")
4342
if (text == "#1") {
4443
socket.write(string: "#2")
4544
} else {
@@ -144,14 +143,14 @@ public class ScClient : Listener, WebSocketDelegate {
144143
self.socket.write(string : emitObject.toJSONString()!)
145144
}
146145

147-
public func subscribe(channelName : String) {
148-
let subscribeObject = Model.getSubscribeEventObject(channelName: channelName, messageId: counter.incrementAndGet())
146+
public func subscribe(channelName : String, token : String? = nil) {
147+
let subscribeObject = Model.getSubscribeEventObject(channelName: channelName, messageId: counter.incrementAndGet(), token : token)
149148
self.socket.write(string : subscribeObject.toJSONString()!)
150149
}
151150

152-
public func subscribeAck(channelName : String, ack : @escaping (String, AnyObject?, AnyObject?)-> Void) {
151+
public func subscribeAck(channelName : String, token : String? = nil, ack : @escaping (String, AnyObject?, AnyObject?)-> Void) {
153152
let id = counter.incrementAndGet()
154-
let subscribeObject = Model.getSubscribeEventObject(channelName: channelName, messageId: id)
153+
let subscribeObject = Model.getSubscribeEventObject(channelName: channelName, messageId: id, token : token)
155154
putEmitAck(id: id, eventName: channelName, ack: ack)
156155
self.socket.write(string : subscribeObject.toJSONString()!)
157156
}

0 commit comments

Comments
 (0)