---
title: "init(session:deliveryMode:)"
framework: groupactivities
role: symbol
role_heading: Initializer
path: "groupactivities/groupsessionmessenger/init(session:deliverymode:)"
---

# init(session:deliveryMode:)

Creates a new group session messenger with the specified delivery mode, GroupSessionMessenger.DeliveryMode, and associates it with the specified session object.

## Declaration

```swift
init<Activity>(session: GroupSession<Activity>, deliveryMode: GroupSessionMessenger.DeliveryMode) where Activity : GroupActivity
```

## Parameters

- `session`: The group session to use for communication with participants. Specify a session object that is in either the doc://com.apple.GroupActivities/documentation/GroupActivities/GroupSession/State-swift.enum/waiting or doc://com.apple.GroupActivities/documentation/GroupActivities/GroupSession/State-swift.enum/joined state for this parameter. However, a session must be in the joined state to send or receive messages.
- `deliveryMode`: The delivery mode for sending and receiving messages. Specify a delivery mode option for the underlying transport of either doc://com.apple.GroupActivities/documentation/GroupActivities/GroupSessionMessenger/DeliveryMode-swift.enum/reliable or doc://com.apple.GroupActivities/documentation/GroupActivities/GroupSessionMessenger/DeliveryMode-swift.enum/unreliable
