Recientemente, necesito probar la interfaz websocket en mi trabajo. He estado usando Postman como herramienta de envío de contratos de conexión corta, como solicitudes http. Ahora encuentro que Postman v8.5 o superior admite websocket. Lo registraré aquí.
Primera nueva solicitud de WebSocket
En la API WebSocket, el navegador y el servidor solo necesitan completar un protocolo de enlace y se puede crear una conexión persistente directamente entre los dos para la transmisión de datos bidireccional.
Ingrese la URL de la API de WebSocket en Postman, haga clic en conectar para establecer una conexión y podrá enviar y recibir mensajes sin problemas.
Se puede enviar texto sin formato, con resaltado de sintaxis y formato automático si el formato de datos es JSON y XML, y se pueden escribir mensajes ArrayBuffer sin formato.
El tiempo de espera indicará que la conexión se ha desconectado
Los datos enviados y recibidos se mostrarán en el orden siguiente
Funciones históricas:
También puede volver a visitar sesiones anteriores de WebSocket en la sección Historial de la barra lateral de Postman. No sólo puedes ver mensajes de conversaciones históricas, sino que también puedes reutilizar la misma API.
Adicional : (Cuando aprendí sobre el protocolo websockt antes, usé Python para simular un proceso de comunicación simple entre el cliente websocket y el servidor, y supervisé la cantidad de identificadores ocupados por el proceso y la conexión de red en el servidor)
Servidor:
#! python3
# SocketTestClient
# -*- coding:utf-8 -*-
import socket
import os
import subprocess
import time
host = '0.0.0.0'
port = 9918
host = socket.gethostname()
print('客户端host = ',host)
print("客户端请求PID = %i" % (os.getpid(),))
obj = socket.socket()
obj.connect((host, port))
print('netstat -nlp | grep %s' % port)
os.system('netstat -nlp | grep %s' % port)
j = 0
while True:
obj.send(bytes("这是客户端第 %s 条消息! " % j, encoding="utf-8"))
#time.sleep(5)
j = j + 1
print("发送了 %s 条!" %j)
if j == 5:
obj.send(bytes("End", encoding="utf-8"))
ret = str(obj.recv(1024), encoding="utf-8")
print('ret = ',ret)
if ret == 'Finish!':
obj.close()
break
else:
continue
Cliente:
#! python3
# SocketTest.py
# -*- coding:utf-8 -*-
import socket
import os
import time
def socketTest():
while True:
ret = str(conn.recv(1024), encoding="utf-8")
print(ret)
if 'End' in ret:
print('连接结束-End')
print('---------------------------------')
conn.sendall(bytes("收到断开连接信息-End!", encoding="utf-8"))
conn.close()
sk.close #不发送fin包
conn.sendall(bytes("我再发!", encoding="utf-8"))
conn.sendall(bytes("我再发!", encoding="utf-8"))
os.system('netstat -nlp | grep %s' % port)
break
else:
print('Not close')
continue
if __name__ == '__main__':
while True:
host = '0.0.0.0'
port = 9918
host = socket.gethostname()
print(host)
print("PID = %i" % (os.getpid(),))
sk = socket.socket()
sk.bind((host, port))
sk.listen(60)
# sk.settimeout(10)
print('端口监听中...')
os.system("netstat -nlp|grep :%i" % (port,))
print('客户端返回连接信息')
conn, address = sk.accept()
print('连接中...')
print('连接来自: ', address)
print('---------------------------------')
print("lsof -p %i" % (os.getpid(),))
os.system("lsof -p %i" % (os.getpid(),))
print('---------------------------------')
print('netstat -nlp | grep %s' % port)
os.system('netstat -nlp | grep %s' % port)
print('---------------------------------')
print('ls /proc/%i/fd |wc -l '% (os.getpid(),))
os.system('ls /proc/%i/fd |wc -l '% (os.getpid(),))
#socketTest()
Finalmente, me gustaría compartir con ustedes algunos de mis materiales de aprendizaje:
el contenido anterior debería ser el almacén de preparación más completo y completo para los amigos de pruebas de software. Para organizar mejor cada módulo, también me referí a muchas publicaciones de blog de alta calidad. en Internet. y proyectos, tratando de no perderse todos los puntos de conocimiento. Muchos amigos confiaron en estos contenidos para revisar y obtuvieron ofertas de los principales fabricantes como BATJ. Este almacén también ha ayudado a muchos estudiantes de pruebas de software. Espero que también pueda ayudarlo a usted. . .
¡Siga mi cuenta oficial de WeChat a continuación para obtenerla gratis! ↓ ↓ ↓ ↓ ↓