一个简单的websocket服务

参考: https://pypi.org/project/websockets/

python 复制代码
#!/usr/bin/env python3
import asyncio
from websockets.server import serve

async def echo(websocket):
    async for message in websocket:
        await websocket.send(message)

async def main():
    async with serve(echo, "127.0.0.1", 8765):
        await asyncio.Future()  # run forever

asyncio.run(main())

获取ip的方法

python 复制代码
def getIp(websocket):
    header = websocket.request_headers
    remote_host = header.get(REMOTE_HOST_KEY)
    if remote_host is not None:
        return remote_host
    return websocket.remote_address[0]

nginx配置

复制代码
location /asyncio {
    add_header Access-Control-Allow-Origin *;
    proxy_pass http://127.0.0.1:8765$request_uri;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

如果机器上有stl证书,上面这样配置,访问 wss://${域名}/asyncio 即可访问到上面部署的echo服务。

相关推荐
无人机9011 小时前
Delphi网络编程收尾:故障排查与性能优化实战指南
网络·性能优化
努力学习的小廉1 小时前
Python 零基础入门——基础语法(一)
java·网络·python
OPHKVPS2 小时前
Anthropic CMS配置错误泄露新旗舰模型:Claude Mythos(Capybara)即将到来
网络·人工智能·安全·ai
lyshensir2 小时前
网络打印机无法打印的诡异问题记录
网络
添砖java‘’2 小时前
传输层协议UDP和TCP
网络·tcp/ip·udp
Meme Buoy2 小时前
9.3端口扫描-安全体系-网络安全技术和协议
网络·安全·web安全
渴了喝洗衣液2 小时前
HCIP作业
网络
Old Uncle Tom2 小时前
智能体技能(Skills)供应链安全: 基于八攻击点的纵深防御体系
网络·人工智能·安全·ai·agent
挨踢小明3 小时前
2.5GBASE-T PHY 驱动之——自协商
网络·5g·phy驱动
QYR_113 小时前
2026全球媒体转换器市场深度洞察:工业以太网与光纤化升级如何重塑网络基础设施格局?
网络·市场调研