启动小智ai python服务端显示ws://192.168.3.11:8000/xiaozhi/v1/

现在需要部署到外网,使用域名访问,如,ws://python.xxx.com/xiaozhi/v1/

具体操作:

1.在小智ai python服务端项目目录中的data/.config.yaml中,server: 下,加入domain: python.xxx.com  # 替换为你的域名

server:
  ip: 0.0.0.0
  port: 8000
  domain: python.xxx.com  # 替换为你的域名

2.在config/config_loader.py中,加入domain的内容,

"domain": config["server"].get("domain", ""),

3.在core/websocket_server.py中加入doamin的内容

domain = server_config.get("domain")
use_ssl = False  # 强制不使用SSL
        
self.logger.bind(tag=TAG).info(
   "===domain===" + domain
)

self.logger.bind(tag=TAG).info(
  # "Server is running at ws://{}:{}/xiaozhi/v1/", get_local_ip(), port
  "Server is running at ws://{}/xiaozhi/v1/", domain
)

4.宝塔--网站--python项目--已经部署的这个项目,,设置--域名管理,,域名对应80端口,,外网映射,开启,,配置文件,配置http反向代理, 主要内容大致如下,

注:不一定是在宝塔中修改以上内容,大概原理差不多,8000的端口在防火墙中放行应该也是要操作的

location /xiaozhi/v1/ {
    proxy_pass http://localhost:8000/xiaozhi/v1/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_read_timeout 3600;  # 延长超时时间
}

5.启动项目

6.看项目日志,启动成功,websocket地址是域名,使用测试页面测试websocket,连接成功,具体测试过程和本地一样,这里不做具体演示

至此,使用域名访问websocket接口成功。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐