# import asyncio
import ssl
from socket import socket
import websocket
# import websockets
def on_message(ws, message):
print ('message received ..')
print (message)
def on_error(ws, error):
print ('error happened .. ')
print (error)
def on_close(ws):
print ("### closed ###")
def on_open(ws):
print ('Opening Websocket connection to the server ... ')
## This session_key I got, need to be passed over websocket header isntad of ws.send.
ws.send("testing message here")
websocket.enableTrace(True)
token = "........"
auth = "Authorization: Bearer " + token
ws = websocket.WebSocketApp("wss://APISERVER:8443/api/v1/namespaces/default/services/the-service:8889/proxy/websocket?token=123",
on_open = on_open,
on_message = on_message,
on_error = on_error,
on_close = on_close,
header = [auth]
)
ws.on_open = on_open
##Note: this is for --insecure flag in curl, basically to tell the client not verify the ssl certificate
ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})
# socket.setsockopt
get those APIServer and token using
APISERVER=$(kubectl config view --minify | grep server | cut -f 2- -d ":" | tr -d " ")
SECRET_NAME=$(kubectl get secrets | grep ^default | cut -f1 -d ' ')
TOKEN=$(kubectl describe secret $SECRET_NAME | grep -E '^token' | cut -f2 -d':' | tr -d " ")
curl $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure