提交 5dec62aa authored 作者: 张孟夏's avatar 张孟夏

修改sseclient依赖

上级 950c4923
from sseclient import SSEClient import requests
import sseclient
import time import time
import json
def get_expId(url,sessionId,streamId,token): def get_expId(url,sessionId,streamId,token,timeout=180):
''' '''
用来获取探索id,返回的是探索会话的id
url:sse连接地址; url:sse连接地址;
sessionId:会话Id sessionId:会话Id
streamId:本次对话Id streamId:本次对话Id
...@@ -14,21 +17,48 @@ def get_expId(url,sessionId,streamId,token): ...@@ -14,21 +17,48 @@ def get_expId(url,sessionId,streamId,token):
'streamId':streamId, 'streamId':streamId,
'access_token':token 'access_token':token
} }
opdata = "" headers = {'Accept': 'text/event-stream'}
messages = SSEClient(url=url,params=params) opdata = []
response = requests.get(url=url,params=params,headers=headers,stream=True)
client = sseclient.SSEClient(response)
starttime = time.time() starttime = time.time()
for msg in messages: for msg in client.events():
# 处理每个接收到的消息 # 处理每个接收到的消息
localtime = time.time() localtime = time.time()
if localtime > starttime + 180: if localtime > starttime + timeout:
opdata = "获取探索id超时" opdata = "获取探索id超时"
break break
if 'EXP' in msg.data: if 'EXP' in msg.data:
# print("Received Message:", msg.data) # print("Received Message:", msg.data)
opdata = msg.data opdata = json.loads(msg.data)
break break
return opdata return opdata[0]
def get_message(url,sessionId,streamId,token,timeout=180):
'''
用来获取普通的message消息,返回的是一个消息列表
url:sse连接地址;
sessionId:会话Id
streamId:本次对话Id
token:凭据
'''
params = {
'sessionId':sessionId,
'streamId':streamId,
'access_token':token
}
headers = {'Accept': 'text/event-stream'}
oplist = []
response = requests.get(url=url,params=params,headers=headers,stream=True)
client = sseclient.SSEClient(response)
for msg in client.events():
# 处理每个接收到的消息
if msg.data:
# print("Received Message:", msg.data)
oplist.append(msg.data)
return oplist
# print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_01688938df2f4c30a81fe6b6c5ca7016','CB_261b4296d3fa4fe1bdb9fc638580d185','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da')) # print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_01688938df2f4c30a81fe6b6c5ca7016','CB_261b4296d3fa4fe1bdb9fc638580d185','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da'))
# print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_05ae462bcf704b5aa990c0db9b3496cb','CB_ec83a379621a4eddb7360fcd7272b1e0','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da')) # print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_e48bea09fe1e4c8388883ff11384bef8','CB_0e7c9c99d6494d9f977b0c2fbb73e2e3','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da'))
# print(get_message('http://bitagent.sit.ninetechone.com/api/chat/read','CB_e268fb27e7d146009d18e0912c23be58','CB_bc6ed32cc3e0476d90c7b243c75cf2a9','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da'))
import json
import sseclient
def with_requests(url, headers,params):
"""Get a streaming response for the given event feed using requests."""
import requests
return requests.get(url, stream=True, headers=headers,params=params)
url = 'http://bitagent.sit.ninetechone.com/api/chat/read'
headers = {'Accept': 'text/event-stream'}
params = {
'sessionId':"CB_01688938df2f4c30a81fe6b6c5ca7016",
"streamId":"CB_261b4296d3fa4fe1bdb9fc638580d185",
"access_token":"Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da"
}
response = with_requests(url, headers,params) # or with_requests(url, headers)
client = sseclient.SSEClient(response)
for event in client.events():
print(json.loads(event.data))
# print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_01688938df2f4c30a81fe6b6c5ca7016','CB_261b4296d3fa4fe1bdb9fc638580d185','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da'))
# print(get_expId('http://bitagent.sit.ninetechone.com/api/chat/read','CB_e48bea09fe1e4c8388883ff11384bef8','CB_0e7c9c99d6494d9f977b0c2fbb73e2e3','Bearer c1391926-e8ba-46c0-a0d1-c5e3c38503da',10))
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论