mirror of
				https://github.com/graphql-python/graphene.git
				synced 2025-11-04 09:57:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
.. _SchemaSubscription:
 | 
						|
 | 
						|
Subscriptions
 | 
						|
=============
 | 
						|
 | 
						|
To create a subscription, you can directly call the ``subscribe`` method on the
 | 
						|
schema. This method is async and must be awaited.
 | 
						|
 | 
						|
.. code:: python
 | 
						|
 | 
						|
    import asyncio
 | 
						|
    from datetime import datetime
 | 
						|
    from graphene import ObjectType, String, Schema, Field
 | 
						|
 | 
						|
    # Every schema requires a query.
 | 
						|
    class Query(ObjectType):
 | 
						|
        hello = String()
 | 
						|
 | 
						|
        def resolve_hello(root, info):
 | 
						|
            return "Hello, world!"
 | 
						|
 | 
						|
    class Subscription(ObjectType):
 | 
						|
        time_of_day = String()
 | 
						|
 | 
						|
        async def subscribe_time_of_day(root, info):
 | 
						|
            while True:
 | 
						|
                yield datetime.now().isoformat()
 | 
						|
                await asyncio.sleep(1)
 | 
						|
 | 
						|
    schema = Schema(query=Query, subscription=Subscription)
 | 
						|
 | 
						|
    async def main(schema):
 | 
						|
        subscription = 'subscription { timeOfDay }'
 | 
						|
        result = await schema.subscribe(subscription)
 | 
						|
        async for item in result:
 | 
						|
            print(item.data['timeOfDay'])
 | 
						|
 | 
						|
    asyncio.run(main(schema))
 | 
						|
 | 
						|
The ``result`` is an async iterator which yields items in the same manner as a query.
 |