使用websocket问题解决了。只需要在问题图片里的红色框位置调用send()方法,把订单号和要发送的消息传递进去,前端js一旦收到消息,便可以做跳转了。
clients = {}
@accept_websocket
def websocketLink(request, out_trade_no):
'连接websocket'
# 获取连接
if request.is_websocket:
lock = threading.RLock() # rlock线程锁
try:
lock.acquire() # 抢占资源
clients[out_trade_no] = request.websocket
# 监听接收客户端发送的消息 或者 客户端断开连接
for message in request.websocket:
if not message:
break
else:
request.websocket.send(message)
finally:
# 释放锁
lock.release()
def send(out_trade_no, msg):
try:
if clients[out_trade_no]:
clients[out_trade_no].send(msg.encode('utf-8'))
# 支付结果发送给前端页面后,该连接使命就完成了
del clients[out_trade_no]
except BaseException:
print('发送消息出错了...')
请问websocketLin()和send()怎样建立起联系
最笨的方法,前端轮训后台接口,查数据库,看是否支付成功
之前Java用的websocket,对python不是很熟,不知道websocket怎么用
@huozf: 你好,层主.请问你这边java用websocket是如何实现的,能参考一下你的代码吗?