tls support
This commit is contained in:
		
							parent
							
								
									7e77833452
								
							
						
					
					
						commit
						3280dfaa58
					
				
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							@ -17,6 +17,7 @@ npx cap sync
 | 
			
		||||
* [`connect(...)`](#connect)
 | 
			
		||||
* [`send(...)`](#send)
 | 
			
		||||
* [`disconnect(...)`](#disconnect)
 | 
			
		||||
* [`close(...)`](#close)
 | 
			
		||||
* [`addListener('state', ...)`](#addlistenerstate-)
 | 
			
		||||
* [`addListener('message', ...)`](#addlistenermessage-)
 | 
			
		||||
* [Interfaces](#interfaces)
 | 
			
		||||
@ -78,10 +79,23 @@ disconnect(options: { id: string; }) => Promise<void>
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### close(...)
 | 
			
		||||
 | 
			
		||||
```typescript
 | 
			
		||||
close(options: { id: string; }) => Promise<void>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Param         | Type                         |
 | 
			
		||||
| ------------- | ---------------------------- |
 | 
			
		||||
| **`options`** | <code>{ id: string; }</code> |
 | 
			
		||||
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### addListener('state', ...)
 | 
			
		||||
 | 
			
		||||
```typescript
 | 
			
		||||
addListener(eventName: 'state', listenerFunc: (message: { id: string; state: string; }) => void) => Promise<PluginListenerHandle>
 | 
			
		||||
addListener(eventName: "state", listenerFunc: (message: { id: string; state: string; }) => void) => Promise<PluginListenerHandle>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Param              | Type                                                              |
 | 
			
		||||
@ -97,7 +111,7 @@ addListener(eventName: 'state', listenerFunc: (message: { id: string; state: str
 | 
			
		||||
### addListener('message', ...)
 | 
			
		||||
 | 
			
		||||
```typescript
 | 
			
		||||
addListener(eventName: 'message', listenerFunc: (message: { id: string; message: string; }) => void) => Promise<PluginListenerHandle>
 | 
			
		||||
addListener(eventName: "message", listenerFunc: (message: { id: string; message: string; }) => void) => Promise<PluginListenerHandle>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| Param              | Type                                                                |
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,20 @@ public class Socket: NSObject {
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public func connect() {
 | 
			
		||||
        let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: .tcp)
 | 
			
		||||
        let parameters = NWParameters.tcp
 | 
			
		||||
        if self.useTLS {
 | 
			
		||||
            let tls = NWProtocolTLS.Options()
 | 
			
		||||
            
 | 
			
		||||
            if (self.acceptInvalidCertificates) {
 | 
			
		||||
                sec_protocol_options_set_verify_block(tls.securityProtocolOptions, { (sec_protocol_metadata, sec_trust, sec_protocol_verify_complete) in
 | 
			
		||||
                    sec_protocol_verify_complete(true)
 | 
			
		||||
                }, DispatchQueue.global())
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            parameters.defaultProtocolStack.applicationProtocols.insert(tls, at: 0)
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        let connection = NWConnection(host: NWEndpoint.Host(self.host), port: NWEndpoint.Port(String(self.port))!, using: parameters)
 | 
			
		||||
        connection.stateUpdateHandler = self.stateDidChange(to:)
 | 
			
		||||
        self.receive(on: connection)
 | 
			
		||||
        connection.start(queue: .main)
 | 
			
		||||
@ -84,8 +97,11 @@ public class Socket: NSObject {
 | 
			
		||||
                    self.delegate?.didReceiveMessage(socket: self.id, message: message)
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            if (connection.state == .ready) {
 | 
			
		||||
                self.receive(on: connection)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,6 +5,7 @@ export interface SocketsPlugin {
 | 
			
		||||
  connect(options: { id: string; }): Promise<void>;
 | 
			
		||||
  send(options: { id: string; message: string }): Promise<void>;
 | 
			
		||||
  disconnect(options: { id: string }): Promise<void>;
 | 
			
		||||
  close(options: { id: string }): Promise<void>;
 | 
			
		||||
  
 | 
			
		||||
  addListener(eventName: "state", listenerFunc: (message: { id: string; state: string }) => void): Promise<PluginListenerHandle>;
 | 
			
		||||
  addListener(eventName: "message", listenerFunc: (message: { id: string; message: string }) => void): Promise<PluginListenerHandle>;
 | 
			
		||||
 | 
			
		||||
@ -98,7 +98,10 @@ export default class Socket {
 | 
			
		||||
		Sockets.disconnect({
 | 
			
		||||
			id: this.id,
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	close() {
 | 
			
		||||
		this.disconnect();
 | 
			
		||||
		SocketManager.getInstance().unregisterSocket(this);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user