Data Sync
Advanced Customizations
Handling Connection Requests
this article provides concepts and step by step instructions for how to use the connectionrequesthandler api method within your app logic to enable end user functionality of intercepting and managing new peer connections advertised in the mesh overview using the connectionrequesthandler api method, you can intercept new peer connections and make decisions to accept or reject them based on the peer metadata set for a given device (see /#setting the connection request handler ) within the connectionrequesthandler you can use the connectionrequest parameter to access information about the peer connection request (see /#reading connection parameter ) peer key string — the identifier encoded as a string that uniquely identifies the requesting peer once discovered within the mesh connection type — the type of connection the peer is requesting peer metadata — the information provided by the end user associated with the peer making the request (for more information on peer metadata, see docid\ wv7edeozxoh6x32bgmbco ) setting the connection request handler to accept or reject an incoming connection request once you've set the request handler, end users must always make a choice to accept or reject incoming connection requests; otherwise, potential issues like request deadlocks and connection timeouts may result ditto presence connectionrequesthandler = { connectionrequest in if (true) { return allow } else { return deny } }ditto presence connectionrequesthandler = { connectionrequest > if (true) { dittoconnectionrequestauthorization allow } else { dittoconnectionrequestauthorization deny } }ditto presence connectionrequesthandler = async (connectionrequest) => { if (true) { return "allow"; } else { return "deny"; } }// not supportedditto presence connectionrequesthandler = (connectionrequest) => { if (true) { return task fromresult(dittoconnectionrequestauthorization allow); } else { return task fromresult(dittoconnectionrequestauthorization deny); } };ditto get presence() set connection request handler( \[&]\(connectionrequest connection request) { if (true){ return connectionrequestauthorization allow; } else { return connectionrequestauthorization deny; } } );ditto presence() set connection request handler(|connection request connectionrequest| { if (true) { return connectionrequestauthorization allow } else { return connectionrequestauthorization deny } });ditto presence connectionrequesthandler = (request) async { if (true) { return connectionrequestauthorization allow; } else { return connectionrequestauthorization deny; } }; reading connection parameter to see specific information associated with a requesting peer connection ditto presence connectionrequesthandler = { connectionrequest in print(connectionrequest peerkeystring) print(connectionrequest connectiontype) print(connectionrequest peermetadata) return allow }ditto presence connectionrequesthandler = { connectionrequest > println(connectionrequest peerkeystring) println(connectionrequest connectiontype) println(connectionrequest peermetadata) dittoconnectionrequestauthorization allow }ditto presence connectionrequesthandler = async (connectionrequest) => { console log(connectionrequest peerkeystring) console log(connectionrequest connectiontype) console log(connectionrequest peermetadata) return "allow"; }// not supportedditto presence connectionrequesthandler = (connectionrequest) => { console writeline(connectionrequest peerkeystring); console writeline(connectionrequest connectiontype); console writeline(connectionrequest peermetadata); return task fromresult(dittoconnectionrequestauthorization allow); };ditto get presence() set connection request handler( \[&]\(connectionrequest connection request) { std cout << connection request peer key string << std endl; std cout << connection request connection type << std endl; std cout << connection request peer metadata << std endl; return connectionrequestauthorization allow; } );ditto presence() set connection request handler(|connection request connectionrequest| { println!("{}", connection request peer key string); println!("{}", connection request connection type); println!("{}", connection request peer metadata); connectionrequestauthorization allow });ditto presence connectionrequesthandler = (request) async { print(connectionrequest peerkeystring) print(connectionrequest connectiontype) print(connectionrequest peermetadata) };