---
title: "accept(incomingMessageHandler:cancellationHandler:)"
framework: xpc
role: symbol
role_heading: Instance Method
path: "xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-6oelg"
---

# accept(incomingMessageHandler:cancellationHandler:)

Accepts an incoming session request from a client using a closure to handle received messages, and returns the inactive session.

## Declaration

```swift
@preconcurrency func accept(incomingMessageHandler: @escaping @Sendable (XPCReceivedMessage) -> (any Encodable)?, cancellationHandler: (@Sendable (XPCRichError) -> Void)? = nil) -> (XPCListener.IncomingSessionRequest.Decision, XPCSession)
```

## Parameters

- `incomingMessageHandler`: A closure that receives incoming messages from a client.
- `cancellationHandler`: An optional closure that the system invokes when it cancels the session.

## Return Value

Return Value A tuple that indicates whether the listener accepts or rejects the incoming session, and includes the inactive session.

## Discussion

Discussion The difference between this method and accept(incomingMessageHandler:cancellationHandler:) is to allow the listener to configure the session, if needed. If you don’t need to perform any session configuration, use accept(incomingMessageHandler:cancellationHandler:) instead.

## See Also

### Responding to client sessions requests

- [accept(_:)](xpc/xpclistener/incomingsessionrequest/accept(_:)-73k8w.md)
- [accept(_:)](xpc/xpclistener/incomingsessionrequest/accept(_:)-35eh9.md)
- [accept(_:)](xpc/xpclistener/incomingsessionrequest/accept(_:)-tkrp.md)
- [accept(incomingMessageHandler:cancellationHandler:)](xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-56fch.md)
- [accept(incomingMessageHandler:cancellationHandler:)](xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-9oa3z.md)
- [accept(incomingMessageHandler:cancellationHandler:)](xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-8rodk.md)
- [accept(incomingMessageHandler:cancellationHandler:)](xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-50tzb.md)
- [accept(incomingMessageHandler:cancellationHandler:)](xpc/xpclistener/incomingsessionrequest/accept(incomingmessagehandler:cancellationhandler:)-48c3k.md)
- [reject(reason:)](xpc/xpclistener/incomingsessionrequest/reject(reason:).md)
- [XPCListener.IncomingSessionRequest.Decision](xpc/xpclistener/incomingsessionrequest/decision.md)
