input: Write a python function to send and receive messages using websockets.
  assert websocket_communication() == "Notification to users: Test message"
  assert websocket_communication() == "Notification to users: Another test message"
output: import asyncio
  import websockets
  
  async def websocket_communication():
      async def send_message(websocket, path):
          message = "Notification to users: Test message"
          await websocket.send(message)
          return message
  
      async def receive_message(websocket, path):
          received_message = await websocket.recv()
          return received_message
  
      async def main():
          async with websockets.serve(send_message, "localhost", 8765):
              await asyncio.Future()  # run forever
  
      await asyncio.gather(main(), receive_message())
  
  # To run the server and client for testing purposes
  async def test_websocket_communication():
      server = await websockets.serve(websocket_communication, "localhost", 8765)
  
      async with websockets.connect("ws://localhost:8765") as websocket:
          message = await websocket.recv()
          assert message == "Notification to users: Test message"
  
      server.close()
      await server.wait_closed()
  
  asyncio.run(test_websocket_communication())