websocket的一段代码不明白什么意思和其作用

问题遇到的现象和发生背景

在CSDN看到一篇文章,但是因为本人才疏学浅导致对某些内容感到难以理解。向作者求问后作者也尚未得到答复。故来此请教。文章地址为:https://blog.csdn.net/as604049322/article/details/113101504
我不明白的代码部分为:Python的websocket同步客户端部分。问题有三个:
1 怎么判断服务端是否发送消息或连接已经建立呢?
2 12行至14行的代码该怎么理解
3 32行至39行的代码该怎么理解

问题相关代码,请勿粘贴截图
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 创建时间:2021/1/24 17:06
__author__ = 'xiaoxiaoming'

import time

import websocket
import _thread


# 在接收到服务器发送消息时调用
def on_message(ws, message):
    print('Received: ' + message)


# 在和服务器建立完成连接时调用
def on_open(ws):
    # 线程运行函数
    def process():
        while True:
            s = input("要发送的内容(quit表示退出):")
            if s == "quit":
                break
            ws.send(s)
            # 休息 0.2 秒先接收服务器回复的消息
            time.sleep(0.2)
        # 关闭 Websocket 的连接
        ws.close()
        print("Websocket closed")

    # 在另一个线程运行 gao() 函数
    _thread.start_new_thread(process, ())


if __name__ == "__main__":
    ws = websocket.WebSocketApp("ws://127.0.0.1:8000/",
                                on_message=on_message,
                                on_open=on_open)

    ws.run_forever()


1 怎么判断服务端是否发送消息或连接已经建立呢?
从目前的客户端代码, 无法判断服务端是否发送消息, 只能是建立连接后,收到服务器端的消息,才知道服务器端给了消息。
至于连接建立, 如果建立超时失败
ws = websocket.WebSocketApp 那行,会返回一个无法建立连接消息

2 12行至14行的代码该怎么理解
定义收到服务器消息的动作, 你可以修改为
def on_message(ws, message):
print('收到服务器消息啦: ' + message)

这个函数调用在 websocket.WebSocketApp 那里做了指向

3 32行至39行的代码该怎么理解

33行是 on_open 的函数内容

36 - 39 就是 当运行这个文件时,不是直接import 这个文件, 则
执行 两行代码
1是建立一个 websocket.WebSocketApp
2是让这个对象一直运行 run_forever()