简体   繁体   English

客户端发送字符串时,Java Websocket服务器接收的不是纯文本

[英]Java websocket server receives not plain text when client sends strings

Hei Guys, 大家好

i'm building my own websocket server, to learn something. 我正在建立自己的websocket服务器,以学习一些东西。

Now i currently have a java socket server which establishes successful with my client but when i send with my client "test", i receive something like "?„þdl»ŠÏ". 现在,我现在有一个Java套接字服务器,可以与我的客户端建立成功,但是当我与我的客户端发送“ test”时,会收到类似“?„þdl»ŠÏ”的信息。 It is always a different receive. 它始终是不同的接收。

There is no line end, nothing. 没有行尾,什么也没有。 I'm reading it out with inputstream.read(). 我正在用inputstream.read()读出它。 The handshake is in plain text and works wonderful. 握手采用纯文本格式,效果很好。

I've looked at websocket data format, but i don't get how i should use it. 我已经看过websocket数据格式,但是我不知道该如何使用它。

Slightly duplicate with Websocket Java Server. Websocket Java Server稍作复制 Not sending message nor receiving --> but I don't get it, anyway. 不发送消息也不接收 ->但无论如何我都听不到

Thanks for any suggestions! 感谢您的任何建议!

The data that the client sends is masked. 客户端发送的数据被屏蔽。 You must get the data from the frame and unmask it. 您必须从框架中获取数据并取消屏蔽。

The unmask function should be something like this: unmask函数应该是这样的:

var DECODED = "";
for (var i = 0; i < ENCODED.length; i++) {
    DECODED[i] = ENCODED[i] ^ MASK[i % 4];
}

Read: https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_servers#Step_2.3A_Exchanging_Data_Frames 阅读: https : //developer.mozilla.org/zh-CN/docs/WebSockets/Writing_WebSocket_servers#Step_2.3A_Exchanging_Data_Frames

This is a tutorial of how to develop a WebSocket server in C# , probably very similar to Java. 这是一个有关如何使用C#开发WebSocket服务器的教程,可能与Java非常相似。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM