当前位置: 首页 > wzjs >正文

石家庄住房和城乡建设厅网站快速网站搭建

石家庄住房和城乡建设厅网站,快速网站搭建,网站建设策划公司,徐州做网站文章目录 WebSocket简介Websocket流程图使用场景代码示例 WebRTC简介WebRTC(Web Real-Time Communication)流程图使用场景代码示例 大模型应用,使得 WebSocket, WebRTC 的使用频率越来越高,WebSocket提供了文本输入与大…

文章目录

  • WebSocket
    • 简介
    • Websocket流程图
    • 使用场景
    • 代码示例
  • WebRTC
    • 简介
    • WebRTC(Web Real-Time Communication)流程图
    • 使用场景
    • 代码示例

大模型应用,使得 WebSocket, WebRTC 的使用频率越来越高,WebSocket提供了文本输入与大模型交互的能力,比如讯飞星火大模型。
使用WebRTC实现了语音与大模型交互的能力,比如字节火山大模型。

WebSocket

简介

WebSocket:基于TCP,主要功能是在客户端和服务器之间建立持久的双向通信连接。它使得浏览器和服务器之间能够进行实时的数据传输,允许服务器主动向客户端推送数据,而无需客户端频繁地发送请求来获取更新,大大提高了数据传输的效率和实时性。

Websocket流程图

客户端 服务器 发送包含 Upgrade: websocket 的 HTTP 请求 返回 101 Switching Protocols 的 HTTP 响应 WebSocket 连接建立成功 发送数据(这里是双向的,双方都可以发送) 处理数据并返回响应 发送关闭帧(包含状态码和原因) 发送确认关闭帧 WebSocket 连接关闭 客户端 服务器

首先客户端发起连接请求,服务器响应后连接建立,接着进行数据的发送和接收,最后客户端请求关闭连接,服务器确认后连接关闭。

使用场景

  1. 实时聊天应用:如在线客服、即时通讯工具等,服务器可以实时将新消息推送给客户端。
  2. 实时数据监控:用于实时显示股票行情、传感器数据等,服务器可以随时将最新数据发送给客户端。
  3. 多人在线游戏:可以实现游戏状态的实时更新,如玩家的位置移动、游戏事件等。

代码示例

以下是一个Python类,用于构建和发送WebSocket请求到讯飞星火大模型:

import websocket
import json
import base64
import hashlib
import hmac
import ssl
from urllib.parse import urlparse, urlencode
from datetime import datetime
from time import mktimeclass SparkAPI:def __init__(self, appid, api_key, api_secret, spark_url):self.appid = appidself.api_key = api_keyself.api_secret = api_secretself.spark_url = spark_urlself.host = urlparse(spark_url).netlocself.path = urlparse(spark_url).pathdef create_signature(self, method, path, date):signature_origin = f"host: {self.host}
date: {date}
{method} {path} HTTP/1.1"signature_sha = hmac.new(self.api_secret.encode('utf-8'),signature_origin.encode('utf-8'),digestmod=hashlib.sha256).digest()signature_sha_base64 = base64.b64encode(signature_sha).decode(encoding='utf-8')return signature_sha_base64def create_url(self):now = datetime.now()date = format_date_time(mktime(now.timetuple()))signature = self.create_signature('GET', self.path, date)authorization_origin = f'api_key="{self.api_key}", algorithm="hmac-sha256", headers="host date request-line", signature="{signature}"'authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')params = {'authorization': authorization,'date': date,'host': self.host}url = self.spark_url + '?' + urlencode(params)return urldef on_message(self, ws, message):data = json.loads(message)code = data['header']['code']if code != 0:print(f'请求错误: {code}, {data}')ws.close()else:choices = data["payload"]["choices"]status = choices["status"]content = choices["text"][0]["content"]print(content, end='')if status == 2:print("#### 关闭会话")ws.close()def send_query(self, domain, query):ws = websocket.WebSocketApp(self.create_url(),on_message=self.on_message,on_error=lambda ws, error: print(f"Error: {error}"),on_close=lambda ws: print("Connection closed"),on_open=lambda ws: ws.send(json.dumps(self.gen_params(self.appid, domain, query))))ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})def gen_params(self, appid, domain, query):data = {"header": {"app_id": appid,"uid": "1234"},"parameter": {"chat": {"domain": domain,"temperature": 0.5,"max_tokens": 4096,"auditing": "default"}},"payload": {"message": {"text": [{"role": "user", "content": query}]}}}return data

使用上述类,你可以通过以下方式发送请求并接收响应:

if __name__ == "__main__":appid = "你的APPID"api_key = "你的APIKey"api_secret = "你的APISecret"spark_url = "wss://spark-api.xf-yun.com/v3.5/chat"  # 根据你使用的模型版本选择URLdomain = "generalv3.5"  # 选择相应的domainquery = "你好,请问今天天气怎么样?"api = SparkAPI(appid, api_key, api_secret, spark_url)api.send_query(domain, query)

在上面的代码中,on_message方法用于处理从星火大模型接收到的消息。该方法会解析JSON响应,并打印出AI的回复。如果会话结束(status为2),则会关闭WebSocket连接。

WebRTC

简介

WebRTC:主要用于在 Web 浏览器之间建立实时的音视频通信和数据传输。它提供了一系列的 API,使得开发者可以方便地实现浏览器之间的视频通话、语音通话、文件传输等实时通信功能,无需依赖任何插件。WebRTC 支持浏览器之间的直接 P2P 连接,无需通过服务器中转音视频数据,这样可以大大减轻服务器的负担,提高数据传输效率,降低延迟。在多人通信场景中,还可以结合服务器进行信令交互和媒体协商,实现高效的多人 P2P 通信,如多人视频会议、多人在线游戏等应用。

WebRTC(Web Real-Time Communication)流程图

它展示了 WebRTC 通信中从信令交互到媒体流传输的基本过程

客户端 A 信令服务器 客户端 B 发起连接请求(信令) 转发连接请求(信令) 回复连接请求(信令) 转发回复(信令) 双方进行信令交互,协商媒体格式等 采集音视频数据(摄像头、麦克风) 编码音视频数据 发送音视频数据(RTP 流) 接收音视频数据(RTP 流) 解码音视频数据 播放音视频数据(显示器、扬声器) 采集音视频数据(摄像头、麦克风) 编码音视频数据 发送音视频数据(RTP 流) 接收音视频数据(RTP 流) 解码音视频数据 播放音视频数据(显示器、扬声器) 发送关闭连接请求(信令) 转发关闭连接请求(信令) 回复关闭连接(信令) 转发回复(信令) WebRTC 连接关闭 客户端 A 信令服务器 客户端 B

在这个流程图中,首先展示了客户端 A 和客户端 B 通过信令服务器进行信令交互以协商连接和媒体参数。然后,两个客户端分别采集、编码自己的音视频数据,并将其发送给对方,对方接收、解码并播放这些数据。最后,当需要关闭连接时,再次通过信令服务器进行信令交互来关闭连接。

使用场景

  1. 视频会议:支持多人视频通话,广泛应用于在线办公、远程教育等领域。
  2. 在线直播:主播可以将音视频流实时传输给观众,实现低延迟的直播效果。
  3. P2P 文件传输:可以在浏览器之间直接传输文件,无需通过服务器中转,提高传输效率。

代码示例

可查看字节火山引擎RTC的demo
作者:帅得不敢出门

http://www.dtcms.com/wzjs/2927.html

相关文章:

  • 做网站页面代码今天晚上19点新闻联播直播回放
  • 网站建设公司找哪家厦门seo排名扣费
  • 有域名一定要买空间做网站国际新闻界
  • 如何做网站竞品分析怎么注册自己的网站域名
  • 假发网站是怎么做的百度云资源搜索平台
  • 成都公司网页制作服务电话seo指的是什么意思
  • 做塑料的网站名字刷钻业务推广网站
  • 网站网站建设专业巩义关键词优化推广
  • 做名片用什么网站免费企业网站模板源码
  • 做电销要在哪个网站上找资源站长工具是什么意思
  • 简单的方法搭建网站网站模板之家
  • 专门做批发的网站吗抖音广告
  • 培训机构网站建设方案跨境电商培训机构哪个靠谱
  • 专业酒店设计网站建设昆明seo案例
  • 怎样做类似淘宝网的网站网页搭建
  • 成都科技网站建设电话咨询百度网站快速优化
  • 做网站用lunx南京百度快照优化排名
  • 内蒙古做网站找谁杭州龙席网络seo
  • 网站登录按钮怎么做关键词优化报价怎么样
  • 聊城建设银行官方网站发布新闻
  • 建网站的公司起什么名好谷歌浏览器官方app下载
  • 宜丰做网站的百度小说排行榜2020前十名
  • 开源网站github百度关键词搜索热度查询
  • 同步wordpress到微信站长seo综合查询工具
  • 空间设计培训优化大师下载安装
  • 网站建设模块化实现网络营销带来的效果
  • 哈尔滨seo排名优化免费咨询百度竞价关键词怎么优化
  • 凡科做的网站怎么改壁纸营销助手下载app下载
  • 专业网站建设制作友情链接交换平台源码
  • html5学习网站下载百度官方版