@@ -76,7 +76,8 @@ public protocol EventSourceProtocol {
76
76
open class EventSource : NSObject , EventSourceProtocol , URLSessionDataDelegate {
77
77
static let DefaultRetryTime = 3000
78
78
79
- public let url : URL
79
+ public let urlRequest : URLRequest
80
+ public var url : URL { urlRequest. url! }
80
81
private( set) public var lastEventId : String ?
81
82
private( set) public var retryTime = EventSource . DefaultRetryTime
82
83
private( set) public var headers : [ String : String ]
@@ -93,11 +94,10 @@ open class EventSource: NSObject, EventSourceProtocol, URLSessionDataDelegate {
93
94
private var urlSession : URLSession ?
94
95
95
96
public init (
96
- url: URL ,
97
- headers: [ String : String ] = [ : ]
97
+ urlRequest: URLRequest
98
98
) {
99
- self . url = url
100
- self . headers = headers
99
+ self . urlRequest = urlRequest
100
+ self . headers = urlRequest . allHTTPHeaderFields ?? [ : ]
101
101
102
102
readyState = EventSourceState . closed
103
103
operationQueue = OperationQueue ( )
@@ -112,7 +112,7 @@ open class EventSource: NSObject, EventSourceProtocol, URLSessionDataDelegate {
112
112
113
113
let configuration = sessionConfiguration ( lastEventId: lastEventId)
114
114
urlSession = URLSession ( configuration: configuration, delegate: self , delegateQueue: operationQueue)
115
- urlSession? . dataTask ( with: url ) . resume ( )
115
+ urlSession? . dataTask ( with: urlRequest ) . resume ( )
116
116
}
117
117
118
118
public func disconnect( ) {
@@ -137,17 +137,17 @@ open class EventSource: NSObject, EventSourceProtocol, URLSessionDataDelegate {
137
137
eventListeners [ event] = handler
138
138
}
139
139
140
- public func removeEventListener( _ event: String ) {
141
- eventListeners. removeValue ( forKey: event)
142
- }
140
+ public func removeEventListener( _ event: String ) {
141
+ eventListeners. removeValue ( forKey: event)
142
+ }
143
143
144
- public func events( ) -> [ String ] {
145
- return Array ( eventListeners. keys)
146
- }
144
+ public func events( ) -> [ String ] {
145
+ return Array ( eventListeners. keys)
146
+ }
147
147
148
148
open func urlSession( _ session: URLSession , dataTask: URLSessionDataTask , didReceive data: Data ) {
149
149
150
- if readyState != . open {
150
+ if readyState != . open {
151
151
return
152
152
}
153
153
@@ -229,8 +229,8 @@ private extension EventSource {
229
229
continue
230
230
}
231
231
232
- if event. event == nil || event. event == " message " {
233
- mainQueue. async { [ weak self] in self ? . onMessageCallback ? ( event. id, " message " , event. data) }
232
+ if event. event == nil || event. event == " thread. message.delta " {
233
+ mainQueue. async { [ weak self] in self ? . onMessageCallback ? ( event. id, " thread. message.delta " , event. data) }
234
234
}
235
235
236
236
if let eventName = event. event, let eventHandler = eventListeners [ eventName] {
@@ -252,3 +252,11 @@ private extension EventSource {
252
252
}
253
253
}
254
254
}
255
+
256
+ public extension EventSourceProtocol {
257
+ var retryTime : Int {
258
+ return 5
259
+ }
260
+ }
261
+
262
+
0 commit comments