当前位置:首页 » 文件管理 » 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,指定你输出目录,写到磁盘上。

热点内容
jsoupjava 发布:2025-05-14 14:38:00 浏览:884
影豹选哪个配置最好 发布:2025-05-14 14:28:50 浏览:255
定期预算法的 发布:2025-05-14 14:24:08 浏览:894
interbase数据库 发布:2025-05-14 13:49:50 浏览:691
微商海报源码 发布:2025-05-14 13:49:42 浏览:347
分布式缓存部署步骤 发布:2025-05-14 13:24:51 浏览:611
php获取上一月 发布:2025-05-14 13:22:52 浏览:90
购买云服务器并搭建自己网站 发布:2025-05-14 13:20:31 浏览:689
sqlserver建立视图 发布:2025-05-14 13:11:56 浏览:486
搭建httpsgit服务器搭建 发布:2025-05-14 13:09:47 浏览:256