设置报头web套接字
Set header web socket?
我想通过blob数据到java服务器使用web套接字。我的java服务器是:
providerSocket = new ServerSocket(2007, 10);
System.out.println("Waiting for connection");
connection = providerSocket.accept();
System.out.println("Connection received from " + connection.getInetAddress().getHostName());
out = new ObjectOutputStream(connection.getOutputStream());
out.flush();
in = new ObjectInputStream(connection.getInputStream());
sendMessage("Connection successful");
我的javascript客户端是:
var ws = new WebSocket("ws://127.0.0.1:2007");
ws.binaryType = "blob";
ws.onopen = function () { console.log("Openened connection to websocket"); };
ws.onmessage = function(e) {
console.log(e.data);
};
function doneEncoding( blob ) { // blob is audio blob
ws.send(blob);
}
server
Connection received from 127.0.0.1
java.io.StreamCorruptedException: invalid stream header: 47455420
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at server.Provider.run(Provider.java:21)
at server.Provider.main(Provider.java:67)
Exception in thread "main" java.lang.NullPointerException
at server.Provider.run(Provider.java:43)
at server.Provider.main(Provider.java:67)
怎么了?帮助我。谢谢你。
ObjectInputStream的文档说:
ObjectInputStream对先前使用ObjectOutputStream…写入的原始数据和对象进行反序列化
你试图从JavaScript程序发送的随机BLOB不符合"原始数据和先前使用ObjectOutputStream编写的对象"的资格,所以,无论你想用BLOB做什么,它都不会工作。
您想要做什么最终取决于您将使用BLOB的目的,但您可能希望将其读入字节数组或类似的内容,如:
InputStream in = connection.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int n;
for (n = in.read(buffer); 0 < n; n = in.read(buffer))
{
out.write(buffer, 0, n);
}
out.flush();
byte[] blob = out.toByteArray();
相关文章:
- PHP:Web套接字和html 5
- STOMP web套接字回调不'不起作用
- 将服务器托管的Web应用程序连接到本地Web套接字
- 在 HTML5 和 C# Web 套接字通信之间
- 是否可以在没有 .NET 4.5 主机的情况下使用当前 Web 套接字
- 使用rxjs创建一个可观察的对象,该对象稍后将连接到web套接字
- Web套接字安全URL加密
- 为什么在Web套接字中使用二进制数据
- Node.js/Socket.io 中的 Web 套接字支持,适用于旧版浏览器
- Java 脚本 Web 套接字客户端无法正常工作
- 通过 Web 套接字传递 googlemapsv3
- 如何为每个 Web 套接字仅使用一个数据库连接
- 设置 Web 套接字
- Web套接字在分配给全局变量时不起作用
- 在 Web 应用程序中实现套接字
- 关闭 HTML5 Web 套接字
- 运行 Web 套接字客户端编程
- 在客户端对 Web 套接字进行编程
- 如何对 Web 套接字进行单元测试 - JavaScript
- Web 套接字 DOM 对象检测