Datei-Upload mit java websocket API und Javascript

8

Ich studiere Websocket und habe ein Chatprogramm mit websocket / json gemacht. Aber ich stecke beim Hochladen von ATM fest. Jeder Rat & amp; Antwort wäre dankbar.

Serverseite:

%Vor%

Kunde:

%Vor%

Server Seite geschlossen Grund Nachricht ist wie folgt

Socket geschlossen: Die dekodierte Textnachricht war zu groß für den Ausgabepuffer und der Endpunkt unterstützt keine Teilnachrichten

Q1: Es scheint, dass es Textverarbeitungsmethode statt der binären Verarbeitungsmethode nach dem geschlossenen Grund findet, wie kann ich das beheben?

F2: Sollte ich den Dateityp in Blob ändern, um die Datei auf Javascript-Seite zu übertragen? Wie dann?

extra F: Darf jemand Beispielquelle (n) der Websocket-Dateiübertragung (Java-Websocket oder Javascript beides / beide) verlinken?

Danke fürs Lesen:)

    
parn 14.02.2014, 01:59
quelle

2 Antworten

3

Nach einigen Recherchen und Versuchen habe ich herausgefunden, dass 'reader.readAsBinaryString (file);' war eine Ursache für Frage 1. Ändern Sie es in 'reader.readAsArrayBuffer (Datei);' Mein erstes Problem wurde gelöst.

Da websocket automatisch eine Datei als mehrere Teildaten überträgt, habe ich die Quelle wie folgt geändert. Das funktioniert! nur, wenn die Dateigröße nicht so groß ist. : /

Geänderte serverseitige Quelle:

%Vor%

Browser (Client) Seite:

%Vor%

Ich kann immer noch nicht herausfinden, wie größere Dateien übertragen werden . (Ich vermute Auto-Timeout und / oder Puffergröße). Irgendwelche Beratung plz?

    
parn 17.02.2014 02:46
quelle
0

In meinem Fall funktioniert es, um große Dateien hochzuladen, ohne dass ein Browser abstürzt oder der Socket geschlossen wird.

Bitte folgen Sie den folgenden Schritten, um es zu bearbeiten.

  1. Verwenden Sie Web Worker, um die großen Dateien zu schneiden
  2. sende die Stücke mit Hilfe von Websocket vom Haupt-Thread an den Server
  3. Datei auf Serverseite basierend auf Blob- oder Chunkinformationen konstruieren.
  4. eine eindeutige ID für jede Datei erhalten, während Dateien auf den Server hochgeladen werden, damit der Server erkennen kann, an welche Datei append
  5. angehängt ist
  6. Auf der Serverseite zuerst im temporären Ordner mit der eindeutigen ID nach der Fertigstellung, verschieben Sie sie in den exakten Ordner.

Sie können durch diesen Artikel gelangen eine Idee über den kompletten Arbeitsablauf, seine Arbeit mit Websocket.

    
Konga Raju 27.06.2014 06:18
quelle

Tags und Links