I was working on ESP8266 Websocket Project , There was a need to capture the websocket messages. Here is my test server where you can see the sample websocket message transactions.
https://github.com/dvxlab/ESP8266_WebSocket_DH11
Here is the source code for capturing the messages.
#DVXLab @2019 All rights reserved
# MIT License
#sudo apt-get install python3-pip
#pip install selenium
#download chrome webdriver & keep in the same directory
from selenium import webdriver
import sys
import time
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.chrome.options import Options
import os
import json
chrm_options=Options()
chrm_caps = webdriver.DesiredCapabilities.CHROME.copy()
chrm_caps['goog:loggingPrefs'] = { 'performance':'ALL' }
#driver = webdriver.Chrome(executable_path = 'chromedriver.exe', chrome_options=chrm_options,desired_capabilities=chrm_caps) Windows
driver = webdriver.Chrome(executable_path = '/opt/blog/chromedriver', chrome_options=chrm_options,desired_capabilities=chrm_caps) #Linux
def LoadWebDriver() :
print("Web driver Init ")
base_url = "http://192.168.1.5:80" #Change the site
print('Loading URL ....')
driver.get(base_url )
def WebSocketLog():
for wsData in driver.get_log('performance'):
#print(wsData)
wsJson = json.loads((wsData['message']))
if wsJson["message"]["method"]== "Network.webSocketFrameReceived":
print ("Rx :"+ str(wsJson["message"]["params"]["timestamp"]) + wsJson["message"]["params"]["response"]["payloadData"])
if wsJson["message"]["method"] =="Network.webSocketFrameSent":
print ("Tx :"+ wsJson["message"]["params"]["response"]["payloadData"])
LoadWebDriver()
print("Waiting")
time.sleep(30) #Capture messages for 30sec, integrate your code here
WebSocketLog() # Finally print log
print("done")
captured message
{
"level": "INFO",
"message": {
"message": {
"method": "Network.webSocketFrameReceived",
"params": {
"requestId": "15800.14",
"response": {
"mask": false,
"opcode": 1,
"payloadData": {
"temperature": 27.1,
"humidity": 62
}
},
"timestamp": 19230.781
}
},
"webview": "E12239730657D412C85C4D48F8F4931B"
},
"timestamp": 1605025862583
}
{
"level": "INFO",
"message": {
"message": {
"method": "Network.webSocketFrameSent",
"params": {
"requestId": "16240.14",
"response": {
"mask": true,
"opcode": 1,
"payloadData": {
"message": "led",
"led1": "0",
"led2": 0,
"led3": 1,
"led4": 1
}
},
"timestamp": 19632.316
}
},
"webview": "D015CF073AC78B7E71581871C7ADC6B3"
},
"timestamp": 1605026261184
}