|
1 | 1 | import asyncio |
| 2 | +import ssl |
2 | 3 |
|
3 | 4 | import pydantic |
4 | 5 |
|
@@ -30,16 +31,32 @@ def proto(self) -> UserJoinedECSTProtobuf: |
30 | 31 | ) |
31 | 32 |
|
32 | 33 |
|
| 34 | +def create_kafka_producer(ssl_context: ssl.SSLContext | None = None) -> kafka_adapters.KafkaProducer: |
| 35 | + dsn = "localhost:9092" |
| 36 | + value_serializer = protobuf.protobuf_value_serializer |
| 37 | + if ssl_context is None: |
| 38 | + return kafka_adapters.kafka_producer_factory( |
| 39 | + security_protocol="PLAINTEXT", |
| 40 | + sasl_mechanism="PLAIN", |
| 41 | + dsn=dsn, |
| 42 | + value_serializer=value_serializer, |
| 43 | + ) |
| 44 | + return kafka_adapters.kafka_producer_factory( |
| 45 | + security_protocol="SASL_SSL", |
| 46 | + sasl_mechanism="SCRAM-SHA-256", |
| 47 | + ssl_context=ssl_context, |
| 48 | + dsn=dsn, |
| 49 | + value_serializer=value_serializer, |
| 50 | + ) |
| 51 | + |
| 52 | + |
33 | 53 | async def main(): |
34 | 54 | event = UserJoinedECST( |
35 | 55 | event_name="user_joined_ecst", |
36 | 56 | topic="user_joined_proto", |
37 | 57 | payload=UserJoinedECSTPayload(user_id="123", meeting_id="456"), |
38 | 58 | ) |
39 | | - kafka_producer = kafka_adapters.kafka_producer_factory( |
40 | | - dsn="localhost:9092", |
41 | | - value_serializer=protobuf.protobuf_value_serializer, |
42 | | - ) |
| 59 | + kafka_producer = create_kafka_producer(ssl_context=None) |
43 | 60 | broker = kafka.KafkaMessageBroker( |
44 | 61 | producer=kafka_producer, |
45 | 62 | ) |
|
0 commit comments