Skip to content

Commit dade072

Browse files
committed
<feat>(plugin): allow multiple write format
1 parent f85967c commit dade072

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.DS_Store
2+
.idea

src/ios/CDVSocketPlugin.m

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ -(void)send: (CDVInvokedUrlCommand *) command {
222222
CDVPluginResult* result= nil;
223223
Connection* socket = nil;
224224
NSString* data = nil;
225+
NSString* format = nil;
225226
NSString* key = nil;
226227

227228
@try {
@@ -243,7 +244,14 @@ -(void)send: (CDVInvokedUrlCommand *) command {
243244
} else {
244245
// writting on output stream
245246
data = [command.arguments objectAtIndex:1];
246-
[socket write:data];
247+
if ([command.arguments count] > 2) {
248+
format = [command.arguments objectAtIndex:2];
249+
}
250+
if ([format isEqual: @"base64"]) {
251+
[socket writeBase64:data];
252+
} else {
253+
[socket write:data];
254+
}
247255

248256
//formatting success response
249257
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:key];
@@ -277,4 +285,4 @@ -(void) sendMessage :(NSString *)host :(int)port :(NSString *)chunk {
277285
[self.commandDelegate evalJs:receiveHook];
278286

279287
}
280-
@end
288+
@end

src/ios/Connection.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- (void) open;
2323
- (void) close;
2424
- (void) write : (NSString*) data;
25+
- (void) writeBase64 : (NSString*) data;
2526

2627
- (void) stream : (NSStream *) theStream handleEvent : (NSStreamEvent) streamEvent;
2728

src/ios/Connection.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ - (void) write : (NSString *) data {
6161
[writer write : [pChunk bytes] maxLength : [pChunk length]];
6262
}
6363

64+
- (void) writeBase64 : (NSString *) data {
65+
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:data options:0];
66+
[writer write : [decodedData bytes] maxLength : [decodedData length]];
67+
}
68+
6469
- (void) stream : (NSStream *) theStream handleEvent : (NSStreamEvent) streamEvent {
6570
switch (streamEvent) {
6671
case NSStreamEventOpenCompleted:

www/socket.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ Socket.prototype.disconnectAll = function (successCallback, errorCallback) {
2828
};
2929

3030
//
31-
Socket.prototype.send = function (successCallback, errorCallback, connectionId, data) {
31+
Socket.prototype.send = function (successCallback, errorCallback, connectionId, data, format) {
3232
'use strict';
33-
exec(successCallback, errorCallback, this.pluginRef, 'send', [connectionId, typeof data == 'string' ? data : JSON.stringify(data)]);
33+
exec(successCallback, errorCallback, this.pluginRef, 'send', [connectionId, typeof data == 'string' ? data : JSON.stringify(data), format]);
3434
};
3535

3636
//

0 commit comments

Comments
 (0)