1
1
package net .rcode .wsclient ;
2
2
3
- import java .nio .charset .Charset ;
4
3
5
4
public class Message {
6
5
private static final byte [] EMPTY_BYTES =new byte [0 ];
7
- private static final Charset UTF8 =Charset .forName ("UTF8" );
8
6
9
7
// -- message opcodes
10
8
public static final int OPCODE_CONTINUATION =0 ;
@@ -26,7 +24,7 @@ public Message(int opcode, byte[] messageData, boolean userMessage) {
26
24
}
27
25
28
26
public Message (String textMessage ) {
29
- this (OPCODE_TEXT , textMessage . getBytes ( UTF8 ), true );
27
+ this (OPCODE_TEXT , Util . getUTF8Bytes ( textMessage ), true );
30
28
}
31
29
32
30
public Message (byte [] binaryMessage ) {
@@ -52,8 +50,8 @@ public boolean isText() {
52
50
return opcode ==OPCODE_TEXT ;
53
51
}
54
52
55
- public String getMessageText () {
56
- if (isText ()) return new String (messageData , UTF8 );
53
+ public CharSequence getMessageText () {
54
+ if (isText ()) return Util . fromUTF8Bytes (messageData );
57
55
else throw new IllegalStateException ("Not text based message" );
58
56
}
59
57
@@ -67,7 +65,7 @@ public byte[] getMessageData() {
67
65
68
66
@ Override
69
67
public String toString () {
70
- if (opcode ==OPCODE_TEXT ) return getMessageText ();
68
+ if (opcode ==OPCODE_TEXT ) return getMessageText (). toString () ;
71
69
else if (messageData !=null ){
72
70
StringBuilder ret =new StringBuilder ();
73
71
for (byte b : messageData ) {
0 commit comments