Flask Socketio 当服务端在处理客户端的socket请求时,同一客户端的http请求会一直pending的解决方法

Flask Socketio 当服务端在处理客户端的socket请求时,同一客户端的http请求会一直pending的解决方法。

在Window环境下,使用 Flask-socketio 的时候,同时使用了 Flask-restful Api库,当时遇到了一个问题,客户端通过 websocket 连接上了服务器,并且在处理 websocket 请求时,客户端通过 http请求 访问静态资源,这时 http请求 出现pending状态,解决办法如下:

def create_app():
    app = Flask(__name__, static_folder="static", static_url_path="/static", template_folder="templates")
    app
要在Java中使用OkHttp3客户端连接到Flask-SocketIO服务器,您需要遵循以下步骤: 1. 在Java应用程序中,使用Maven或Gradle等构建工具将OkHttp3客户端库添加到您的项目中。例如,可以使用以下Maven依赖项: ```xml <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.9.1</version> </dependency> ``` 2. 在Java应用程序中,使用以下代码创建OkHttp3客户端实例并建立与Flask-SocketIO服务器的连接: ```java import okhttp3.*; import org.jetbrains.annotations.NotNull; import java.io.IOException; public class SocketIOClient { private final OkHttpClient client; private final Request request; public SocketIOClient() { this.client = new OkHttpClient.Builder().build(); this.request = new Request.Builder().url("http://localhost:5000/socket.io/").build(); } public void connect() { WebSocketListener listener = new WebSocketListener() { @Override public void onOpen(@NotNull WebSocket webSocket, @NotNull Response response) { System.out.println("Connected to server: " + response.message()); } @Override public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) { System.out.println("Received message: " + text); } @Override public void onClosed(@NotNull WebSocket webSocket, int code, @NotNull String reason) { System.out.println("Disconnected from server: " + reason); } @Override public void onFailure(@NotNull WebSocket webSocket, @NotNull Throwable t, Response response) { System.err.println("Error: " + t.getMessage()); } }; WebSocket ws = client.newWebSocket(request, listener); } } ``` 在上面的代码中,您需要将“http://localhost:5000”替换为您的Flask-SocketIO服务器的URL和端口。 3. 现在,您可以使用WebSocket实例发送和接收消息。例如,以下代码将向服务器发送“hello”消息并处理服务器发送的回复消息: ```java ws.send("hello"); ws.send("hello", new WebSocketListener() { @Override public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) { System.out.println("Received reply: " + text); } }); ``` 在上面的代码中,服务器将使用“message”事件发送回复消息。您可以使用“onMessage”方法侦听此事件并处理消息。 希望这可以帮助您使用OkHttp3客户端连接到Flask-SocketIO服务器!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值