-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(websockets): visionOS and catalyst support (#18)
* feat(websockets): visionOS support * ci: select xcode 15.4 * chore: add pre-built versions * fix: visionos device and catalyst target
- Loading branch information
1 parent
b8734fb
commit 5894657
Showing
38 changed files
with
1,493 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 change: 1 addition & 0 deletions
1
...riptWebSockets.xcframework/ios-arm64-maccatalyst/NativeScriptWebSockets.framework/Headers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Versions/Current/Headers |
1 change: 1 addition & 0 deletions
1
...riptWebSockets.xcframework/ios-arm64-maccatalyst/NativeScriptWebSockets.framework/Modules
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Versions/Current/Modules |
1 change: 1 addition & 0 deletions
1
...xcframework/ios-arm64-maccatalyst/NativeScriptWebSockets.framework/NativeScriptWebSockets
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Versions/Current/NativeScriptWebSockets |
1 change: 1 addition & 0 deletions
1
...Sockets.xcframework/ios-arm64-maccatalyst/NativeScriptWebSockets.framework/PrivateHeaders
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Versions/Current/PrivateHeaders |
1 change: 1 addition & 0 deletions
1
...ptWebSockets.xcframework/ios-arm64-maccatalyst/NativeScriptWebSockets.framework/Resources
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Versions/Current/Resources |
18 changes: 18 additions & 0 deletions
18
...-maccatalyst/NativeScriptWebSockets.framework/Versions/A/Headers/NativeScriptWebSockets.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
// | ||
// NativeScriptWebSockets.h | ||
// NativeScriptWebSockets | ||
// | ||
// Created by Eduardo Speroni on 2/25/22. | ||
// | ||
|
||
#import <Foundation/Foundation.h> | ||
|
||
//! Project version number for NativeScriptWebSockets. | ||
FOUNDATION_EXPORT double NativeScriptWebSocketsVersionNumber; | ||
|
||
//! Project version string for NativeScriptWebSockets. | ||
FOUNDATION_EXPORT const unsigned char NativeScriptWebSocketsVersionString[]; | ||
|
||
// In this header, you should import all the public headers of your framework using statements like #import <NativeScriptWebSockets/PublicHeader.h> | ||
|
||
#import "RCTSRWebSocket.h" |
132 changes: 132 additions & 0 deletions
132
...os-arm64-maccatalyst/NativeScriptWebSockets.framework/Versions/A/Headers/RCTSRWebSocket.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
// | ||
// Copyright 2012 Square Inc. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
||
#import <Foundation/Foundation.h> | ||
#import <Security/SecCertificate.h> | ||
|
||
typedef NS_ENUM(unsigned int, RCTSRReadyState) { | ||
RCTSR_CONNECTING = 0, | ||
RCTSR_OPEN = 1, | ||
RCTSR_CLOSING = 2, | ||
RCTSR_CLOSED = 3, | ||
}; | ||
|
||
typedef NS_ENUM(NSInteger, RCTSRStatusCode) { | ||
RCTSRStatusCodeNormal = 1000, | ||
RCTSRStatusCodeGoingAway = 1001, | ||
RCTSRStatusCodeProtocolError = 1002, | ||
RCTSRStatusCodeUnhandledType = 1003, | ||
// 1004 reserved. | ||
RCTSRStatusNoStatusReceived = 1005, | ||
// 1004-1006 reserved. | ||
RCTSRStatusCodeInvalidUTF8 = 1007, | ||
RCTSRStatusCodePolicyViolated = 1008, | ||
RCTSRStatusCodeMessageTooBig = 1009, | ||
}; | ||
|
||
@class RCTSRWebSocket; | ||
|
||
extern NSString *const RCTSRWebSocketErrorDomain; | ||
extern NSString *const RCTSRHTTPResponseErrorKey; | ||
|
||
#pragma mark - RCTSRWebSocketDelegate | ||
|
||
@protocol RCTSRWebSocketDelegate; | ||
|
||
#pragma mark - RCTSRWebSocket | ||
|
||
@interface RCTSRWebSocket : NSObject <NSStreamDelegate> | ||
|
||
@property (nonatomic, weak) id<RCTSRWebSocketDelegate> delegate; | ||
|
||
@property (nonatomic, readonly) RCTSRReadyState readyState; | ||
@property (nonatomic, readonly, strong) NSURL *url; | ||
|
||
// This returns the negotiated protocol. | ||
// It will be nil until after the handshake completes. | ||
@property (nonatomic, readonly, copy) NSString *protocol; | ||
|
||
// Protocols should be an array of strings that turn into Sec-WebSocket-Protocol. | ||
- (instancetype)initWithURLRequest:(NSURLRequest *)request protocols:(NSArray<NSString *> *)protocols NS_DESIGNATED_INITIALIZER; | ||
- (instancetype)initWithURLRequest:(NSURLRequest *)request; | ||
|
||
// Some helper constructors. | ||
- (instancetype)initWithURL:(NSURL *)url protocols:(NSArray<NSString *> *)protocols; | ||
- (instancetype)initWithURL:(NSURL *)url; | ||
|
||
// Delegate queue will be dispatch_main_queue by default. | ||
// You cannot set both OperationQueue and dispatch_queue. | ||
- (void)setDelegateOperationQueue:(NSOperationQueue *)queue; | ||
- (void)setDelegateDispatchQueue:(dispatch_queue_t)queue; | ||
|
||
// By default, it will schedule itself on +[NSRunLoop RCTSR_networkRunLoop] using defaultModes. | ||
- (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; | ||
- (void)unscheduleFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode; | ||
|
||
// RCTSRWebSockets are intended for one-time-use only. Open should be called once and only once. | ||
- (void)open; | ||
|
||
- (void)close; | ||
- (void)closeWithCode:(NSInteger)code reason:(NSString *)reason; | ||
|
||
// Send a UTF8 String or Data. | ||
- (void)send:(id)data; | ||
|
||
// Send Data (can be nil) in a ping message. | ||
- (void)sendPing:(NSData *)data; | ||
|
||
@end | ||
|
||
#pragma mark - RCTSRWebSocketDelegate | ||
|
||
@protocol RCTSRWebSocketDelegate <NSObject> | ||
|
||
// message will either be an NSString if the server is using text | ||
// or NSData if the server is using binary. | ||
- (void)webSocket:(RCTSRWebSocket *)webSocket didReceiveMessage:(id)message; | ||
|
||
@optional | ||
|
||
- (void)webSocketDidOpen:(RCTSRWebSocket *)webSocket; | ||
- (void)webSocket:(RCTSRWebSocket *)webSocket didFailWithError:(NSError *)error; | ||
- (void)webSocket:(RCTSRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean; | ||
- (void)webSocket:(RCTSRWebSocket *)webSocket didReceivePong:(NSData *)pongPayload; | ||
|
||
@end | ||
|
||
#pragma mark - NSURLRequest (CertificateAdditions) | ||
|
||
@interface NSURLRequest (CertificateAdditions) | ||
|
||
@property (nonatomic, readonly, copy) NSArray *RCTSR_SSLPinnedCertificates; | ||
|
||
@end | ||
|
||
#pragma mark - NSMutableURLRequest (CertificateAdditions) | ||
|
||
@interface NSMutableURLRequest (CertificateAdditions) | ||
|
||
@property (nonatomic, copy) NSArray *RCTSR_SSLPinnedCertificates; | ||
|
||
@end | ||
|
||
#pragma mark - NSRunLoop (RCTSRWebSocket) | ||
|
||
@interface NSRunLoop (RCTSRWebSocket) | ||
|
||
+ (NSRunLoop *)RCTSR_networkRunLoop; | ||
|
||
@end |
6 changes: 6 additions & 0 deletions
6
...os-arm64-maccatalyst/NativeScriptWebSockets.framework/Versions/A/Modules/module.modulemap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
framework module NativeScriptWebSockets { | ||
umbrella header "NativeScriptWebSockets.h" | ||
export * | ||
|
||
module * { export * } | ||
} |
Binary file added
BIN
+123 KB
.../ios-arm64-maccatalyst/NativeScriptWebSockets.framework/Versions/A/NativeScriptWebSockets
Binary file not shown.
Oops, something went wrong.