code: def test_rpc_msg():
      reset_envs()
      os.environ["DGL_DIST_MODE"] = "distributed"
      from dgl.distributed.rpc import (
          deserialize_from_payload,
          RPCMessage,
          serialize_to_payload,
      )
  
      SERVICE_ID = 32452
      dgl.distributed.register_service(
          SERVICE_ID, MyRequest, MyResponse
      )
      req = MyRequest()
      data, tensors = serialize_to_payload(req)
      rpcmsg = RPCMessage(SERVICE_ID, 23, 0, 1, data, tensors)
      assert rpcmsg.service_id == SERVICE_ID
      assert rpcmsg.msg_seq == 23
      assert rpcmsg.client_id == 0
      assert rpcmsg.server_id == 1
      assert len(rpcmsg.data) == len(data)
      assert len(rpcmsg.tensors) == 1
      assert F.array_equal(rpcmsg.tensors[0], req.z)
  
imports: import multiprocessing
  import os
  import socket
  import time
  import unittest
  import backend
  import dgl
  import pytest
  from numpy.testing import assert_array_equal
  from utils import generate_ip_config, reset_envs
label_desc: Use image node_id 8 for calling a global function with example usage: test_rpc_msg() without return types