我正在尝试使用 websocket 连接将文件发送到我的服务器:我已经使用 java Spring 实现了 websocket 服务器端,每次我使用“blob”从客户端发送二进制消息时,出于某种原因,客户端在 javaScript 中或“arraybuffer。服务器将消息识别为文本消息而不是二进制消息。我在这里遗漏了什么?
客户端
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Chat</title>
</head>
<body>
<h2>File Upload</h2>
Select file
<input type="file" id="filename" />
<br><br><br>
<input type="button" value="Connect" onclick="WebSocketTest()" />
<br><br><br>
<input type="button" value="Upload" onclick="sendFile()" />
<script>
"use strict"
var ws;
function WebSocketTest()
{
if ("WebSocket" in window)
{
console.log("WebSocket is supported by your Browser!");
// Let us open a web socket
ws = new WebSocket("ws://xx.xx.xx.xx:yyyy/service/audioHandler");
ws.onopen = function()
{
// Web Socket …Run Code Online (Sandbox Code Playgroud) 要与Google云端存储进行通信,我将关注此示例:https://developers.google.com/storage/docs/json_api/v1/json-api-java-samples
我应该保持与云的开放连接吗?这不会导致内存或资源问题吗?
/** Global instance of the HTTP transport. */
private static HttpTransport httpTransport;
private static Storage client;
Run Code Online (Sandbox Code Playgroud)
否则,我应该在每次获取/删除请求后关闭连接吗?什么是最佳做法?
我正在开发一个将部署在Linux上的应用程序.应用程序将收到HTTP POST请求,其中包含要上载到云的文件.首次加载应用程序时,我将以下全局变量启动:
// Initialize the transport.
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
// Initialize the data store factory.
dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR);
// Authorization.
Credential credential = authorize();
// Set up global Storage instance.
client = new Storage.Builder(httpTransport, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME).build();
Run Code Online (Sandbox Code Playgroud)
这是最好的做法吗?这种实现会导致内存/资源问题吗?