V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zhishixiang  ›  全部回复第 9 页 / 共 10 页
回复总数  188
1  2  3  4  5  6  7  8  9  10  
2022-07-14 19:12:36 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zoofy 我看错了不好意思
2022-07-14 19:12:07 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zoofy 服务端第 13 行 sid 参数是从客户端获取的,但是客户端没有传 sid 参数,实际上无法运行
2022-07-14 18:39:53 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zoofy 意思就是说 sid 必须要客户端发给服务端,服务端无法获取吗,那服务端怎么通过客户端提供的 sid 找到客户端并向客户端发送消息
2022-07-14 17:21:57 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zoofy 还是不行,而且有几个问题:
1.sid 应该用 request.sid 获取,data 数据里面没有 sid 内容
2.目的是为了当访问 localhost:8090/test 时客户端能收到消息,但是仍未实现
3.要是实在无法解决的话有没有别的方法能实现 websocket 连接
2022-07-13 21:30:34 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@NessajCN 会不会是 flask socketio 封装了 socketio 的相关内容
2022-07-13 19:18:32 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@NessajCN 已经读取成功了,这个报错是服务端的,完全不影响使用,而且是不知道改了什么才出现的,根本修复不了,很奇怪
2022-07-13 18:52:14 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@NessajCN 还是不行,而且会弹出报错(虽然没什么影响)
message handler error
Traceback (most recent call last):
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\site-packages\engineio\server.py", line 622, in _trigger_event
return self.handlers[event](*args)
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\site-packages\socketio\server.py", line 730, in _handle_eio_message
pkt = packet.Packet(encoded_packet=data)
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\site-packages\socketio\packet.py", line 41, in __init__
self.attachment_count = self.decode(encoded_packet)
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\site-packages\socketio\packet.py", line 111, in decode
self.data = self.json.loads(ep)
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\86177\AppData\Local\Programs\Python\Python310\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2022-07-13 17:50:45 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@zhishixiang 又忘记删机密信息了,改个密码先
2022-07-13 17:50:14 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@NessajCN 已经导入过了,可以直接使用 emit ,忘记打出来了,我放完整源码吧
```
from hashlib import new
from re import T
from time import sleep

import requests
from flask import Flask, sessions, request
import pymysql
import json
from flask_socketio import SocketIO, emit, join_room, leave_room, send

db = pymysql.connect(host="gz-cynosdbmysql-grp-pre3qflf.sql.tencentcdb.com", port=21297, user="autowhitelist",
password="nl6a0j2pcaLDIXcb", database="autowhitelist")
cursor = db.cursor()
app = Flask(__name__)

# 以下是轮询方案,能不用就尽量不用
"""@app.route("/checkNew")
def checkNew():
secret = request.values.get("secret")
newMission = cursor.execute("SELECT * FROM missionList WHERE secret=%s AND isEnd = 0", secret)
print(newMission)
if newMission == 0:
return json.dumps({"status": "0", "msg": "No new mission"})
else:
mission = cursor.fetchone()
id = mission[1]
cursor.execute("UPDATE missionList SET isEnd = 1 WHERE id = %s", id)
db.commit()
return json.dumps({"status": "1", "msg": "New Whitelist", "id": id})"""

"""@app.route("/uploadNew")
def uploadNew():"""

"""@app.route("/checkServer")
def checkServer():
secret = request.values.get("secret")
isReg = cursor.execute("SELECT * FROM registerList WHERE secret=%s", secret)
if isReg == 1:
return ("Success")
else:
return ("Server not exist")
"""

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
tokenList = {}


@app.route("/test")
def testConnect():
sid = tokenList["114514"]
socketio.emit('newMission', {'from': 'server'}, namespace="newMission", to=sid)
return "success"


@socketio.on('register')
def register(data):
print("服务器%s 尝试注册" % data["secret"])
emit('register', {"token": "1919810"})
print("注册成功,token 为%s" % "1919810")
sid = request.sid
join_room("mainRoom")
tokenList["114514"] = sid


"""@socketio.on('message')
def message(data):
print(data) # {'from': 'client'}
emit('response', {'from': 'server'})
sleep(5)
emit('response', "exit")"""

if __name__ == '__main__':
socketio.run(app, debug=True, host='127.0.0.1', port=8090)
```
2022-07-13 16:42:43 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@NessajCN 才发现服务端和客户端代码写反了,得换过来看
2022-07-13 15:36:08 +08:00
回复了 zhishixiang 创建的主题 Python flask socketio 无法向客户端推送消息
@BeautifulSoup 服务端安装了 gevent-websocket 库,可以使用 websocket ,客户端用的是 python websocket 库
2022-07-13 11:09:15 +08:00
回复了 wangyu17455 创建的主题 程序员 使用支持 websocket 的 cdn 保护 mc 服务器
希望能出详细使用教程
2022-07-13 11:08:45 +08:00
回复了 wangyu17455 创建的主题 程序员 使用支持 websocket 的 cdn 保护 mc 服务器
竟然有这么好的技术,我也是开 mc 服的,支持一下
2022-07-12 20:54:34 +08:00
回复了 zhishixiang 创建的主题 问与答 想问问外边有什么地方可以用信用卡白嫖主机
@titanium98118 甲骨文云好像对信用卡有要求,国内的卡能用吗
2022-07-12 20:29:25 +08:00
回复了 zhishixiang 创建的主题 问与答 想问问外边有什么地方可以用信用卡白嫖主机
@christin 还能推荐几家吗
2022-07-12 19:04:21 +08:00
回复了 zhishixiang 创建的主题 问与答 想问问外边有什么地方可以用信用卡白嫖主机
@christin 这两个不是说有一年吗,怎么突然就几个月了
2022-06-20 10:52:43 +08:00
回复了 Cagliostro 创建的主题 Nintendo Switch 荒野之息 2 推迟到 2023 年春季
@Y29tL2gwd2Fy 这下同步延期更新了
2022-06-15 15:56:57 +08:00
回复了 zhishixiang 创建的主题 分享创造 利用蹩脚的 js 知识写了一个统计真实访客数量的脚本
@lisongeee 以前学 js 一直是 var ,最近没怎么补 js 的知识。腾讯云 serverless 有学生优惠,一年才 20 几,打算嫖完再换别家。
2022-06-15 15:53:43 +08:00
回复了 zhishixiang 创建的主题 分享创造 利用蹩脚的 js 知识写了一个统计真实访客数量的脚本
@doublleft 那条回复竟然没隐藏,看来得改改了
2022-06-14 11:53:53 +08:00
回复了 zhishixiang 创建的主题 分享创造 利用蹩脚的 js 知识写了一个统计真实访客数量的脚本
@cy1027 什么问题
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1129 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.