當前位置:首頁 » 文件管理 » javawebsocket上傳文件

javawebsocket上傳文件

發布時間: 2022-08-17 16:08:56

java 如何解析WebSocket傳輸的二進制數據

JS操作websocket接收的二進制,安全性能有保障,已經過一年實踐考驗:

[javascript]view plain

  • ws.onmessage=function(evt){

  • if(typeof(evt.data)=="string"){

  • textHandler(JSON.parse(evt.data));

  • }else{

  • varreader=newFileReader();

  • reader.onload=function(evt){

  • if(evt.target.readyState==FileReader.DONE){

  • vardata=newUint8Array(evt.target.result);

  • handler(data);

  • }

  • }

  • reader.readAsArrayBuffer(evt.data);

  • }

  • };


  • [html]view plain

  • functionhandler(data){

  • switch(data[0]){

  • case1:

  • getCard(data[1]);

  • break;

  • ...

  • JS操作websocket接收的圖片,今天剛寫的,也是用filereader實現。

    [html]view plain

  • ws.onmessage=function(evt){

  • if(typeof(evt.data)=="string"){

  • //textHandler(JSON.parse(evt.data));

  • }else{

  • varreader=newFileReader();

  • reader.onload=function(evt){

  • if(evt.target.readyState==FileReader.DONE){

  • varurl=evt.target.result;

  • alert(url);

  • varimg=document.getElementById("imgDiv");

  • img.innerHTML="<imgsrc="+url+"/>";

  • }

  • }

  • reader.readAsDataURL(evt.data);

  • }

  • };

Ⅱ java怎麼做websocket

package com.bpms.interfaces.communicate.paycode;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ConnectException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import com.unify.cc.common.CommonUtil;
public class SocketSend {
private String host = "11.1.66.193";
private int port = 2345;
private Socket client;
private SocketAddress remoteAddr;
private DataOutputStream os;
private DataInputStream is;
private int overTime = 0;
private int maxChang = 256;
private String error = "";

/**
* 只配服務端的地址和埠
* @param host 服務端IP
* @param port 服務端埠
*/
public SocketSend(String host , int port) {
this.host = host;
this.port = port;
}

/**
* 設置連接報文長度的配置
* @param host IP
* @param port 埠
* @param maxChang 指定接收報文長度
*/
public SocketSend(String host , int port , int maxChang) {
this.host = host;
this.port = port;
if(maxChang != 0)
this.maxChang = maxChang;
}

/**
* 設置連接連接超時的配置
* @param host IP
* @param port 埠
* @param maxChang 指定接收報文長度
* @param overTime 連接超時時間
*/
public SocketSend(String host , int port , int maxChang , int overTime) {
this.host = host;
this.port = port;
if(maxChang != 0)
this.maxChang = maxChang;
if(overTime != 0)
this.overTime = overTime;
}

/**
* 初始化參數
* @throws IOException
*/
public void init() throws IOException {
if(client == null)
client = new Socket();
remoteAddr = new InetSocketAddress(host,port); //創建客戶端連接地址
try{
if(overTime != 0) {
client.connect(remoteAddr,overTime);
}
else {
client.connect(remoteAddr);
}
} catch (ConnectException e) {
error = "SocketSend - init ConnectionServicesException";
return;
}
is = new DataInputStream(client.getInputStream()); //獲得服務端輸出流
os = new DataOutputStream(client.getOutputStream()); //獲得服務端輸入流
}

/**
* 關閉連接
* @throws IOException
*/
private void close() throws IOException{
if (os != null) {
os.close();
}
if(is != null) {
is.close();
}
if(client != null) {
client.close(); //關閉連接器
}
}

/**
* 寫入流
*/
public void writeMessage(byte[] byt){
try {
os.write(byt); //在服務端寫入報文
os.flush();
} catch (IOException e) {
CommonUtil.debug("SocketSend - writeMessage 報文寫入異常");
e.printStackTrace();
}
}
/**
* @param message 報文
* @return 返回報文
* @throws IOException , Exception
*/
public byte[] execute(byte[] byt) throws Exception{
init();
byte[] buf = null;
//連接異常不做處理
if("".equals(error)){
writeMessage(byt);
buf = new byte[maxChang];
if (is != null) {
is.read(buf);//讀入數據到緩沖區
}
close();
}else {
close();
throw new Exception(error);
}
return buf;
}
}

Ⅲ 如何通過WebSocket連接伺服器進行數據傳輸

客戶端:

client.htm

<!DOCTYPEhtml>
<html>
<body>
<h1>WebSocket</h1>
<scriptsrc="client.js"></script>
</body>
</html>

client.js

varws=newWebSocket("ws://127.0.0.1:8080/");

ws.onopen=function(){
alert("Opened");
ws.send("I'mclient");
};

ws.onmessage=function(evt){
alert(evt.data);
};

ws.onclose=function(){
alert("Closed");
};

ws.onerror=function(err){
alert("Error:"+err);
};

服務端可以用各種語言去實現,Java可以用Jetty,C#可以用SuperSocket,這里我舉例用Node.js,創建server.js:

varWebSocketServer=require('ws').Server
,wss=newWebSocketServer({port:8080});
wss.on('connection',function(ws){
ws.on('message',function(message){
console.log('received:%s',message);
});
ws.send('something');
});

運行方式:

npminstallws
nodeserver.js

Ⅳ java消息推送websocket怎麼實現

java消息推送websocket實現原理:在實現websocket連線過程中,需要通過瀏覽器發出websocket連線請求,然後伺服器發出回應,這個過程通常稱為「握手」 。在 WebSocket API,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
在以前的消息推送機制中,用的都是 Ajax 輪詢(polling),在特定的時間間隔由瀏覽器自動發出請求,將伺服器的消息主動的拉回來,這種方式是非常消耗資源的,因為本質還是http請求,而且顯得非常笨拙。而WebSocket 在瀏覽器和伺服器完成一個握手的動作,在建立連接之後,伺服器可以主動傳送數據給客戶端,客戶端也可以隨時向伺服器發送數據。
WebSocket協議是基於TCP的一種新的網路協議。實現了瀏覽器與伺服器全雙工(full-plex)通信——允許伺服器主動發送信息給客戶端。也可以選擇第三方推送平台來實現,比如極光推送就不錯。

Ⅳ websocket可以java代碼發送嗎

ava7 開始支持WebSocket,並且只是做了定義,並未實現
tomcat7及以上,jetty 9.1及以上實現了WebSocket,其他容器沒有研究
spring 4.0及以上增加了WebSocket的支持
spring 支持STOMP協議的WebSocket通信
WebSocket 作為java的一個擴展,它屬於javax包目錄下,通常需要手工引入該jar,以tomcat為例,可以在 tomcat/lib 目錄下找到 websocket-api.jar

Ⅵ java websocket如何將後台數據發送給前台

request.setAttribute("bbb",bbb);
在目標JSP頁面這樣寫<input type="hidden" id="info" value="<%=request.getAttribute("bbb")%>"/>,(或者${request.bbb})然後在Script中直接通過操作dom取得該值,var bbb=document.getElementById("info").value;不過這樣獲得的值已經是個字元串了,因為無論是<%=request.getAttribute("bbb")%>還是表達式,執行的對象的toString方法輸出,如果是數組的時候可以考慮用C標簽,循環輸出每個數組元素,然後用document.getElementByName方法獲取

Ⅶ 怎樣通過java實現伺服器上文件下載

用HttpClient(commons httpclient)包,模擬一個Get請求,發送到網址172.16.30.230/文件地址。這個文件地址不能是E/Map/123.txt,必須是暴露在伺服器中的應用里的。就像你寫的應用里的一個jsp頁面的目錄。
成功發送get請求後,就會得到response,裡面有流。就是你下載的文件,然後可以通過FileOutputStream,指定你輸出目錄,寫到磁碟上。

熱點內容
電腦怎麼選擇配置 發布:2025-05-14 10:46:12 瀏覽:325
電腦怎麼不顯示手機連接伺服器失敗 發布:2025-05-14 10:42:28 瀏覽:9
安卓如何下載lv手游 發布:2025-05-14 10:35:45 瀏覽:383
pythondict添加key 發布:2025-05-14 10:33:59 瀏覽:382
柱子箍筋加密區長度 發布:2025-05-14 10:18:29 瀏覽:352
雲伺服器和內網穿透哪個好 發布:2025-05-14 10:16:41 瀏覽:627
安徽新能源網路配置是什麼 發布:2025-05-14 10:06:24 瀏覽:631
pinode搭建伺服器 發布:2025-05-14 10:04:23 瀏覽:4
電腦伺服器ip名稱 發布:2025-05-14 10:01:09 瀏覽:749
connectorpython 發布:2025-05-14 09:48:50 瀏覽:763