Browse Source

Origin response content-type fixed

master
Nikita 11 years ago
parent
commit
ea854524ff
  1. 1
      src/main/java/com/corundumstudio/socketio/BroadcastOperations.java
  2. 20
      src/main/java/com/corundumstudio/socketio/handler/EncoderHandler.java

1
src/main/java/com/corundumstudio/socketio/BroadcastOperations.java

@ -18,7 +18,6 @@ package com.corundumstudio.socketio;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

20
src/main/java/com/corundumstudio/socketio/handler/EncoderHandler.java

@ -82,7 +82,7 @@ public class EncoderHandler extends ChannelOutboundHandlerAdapter {
}
private void sendMessage(HttpMessage msg, Channel channel, ByteBuf out) {
HttpResponse res = createHttpResponse(msg.getOrigin(), out);
HttpResponse res = createHttpResponse(msg, out);
channel.write(res);
if (log.isTraceEnabled()) {
@ -99,13 +99,23 @@ public class EncoderHandler extends ChannelOutboundHandlerAdapter {
f.addListener(ChannelFutureListener.CLOSE);
}
private HttpResponse createHttpResponse(String origin, ByteBuf message) {
private HttpResponse createHttpResponse(HttpMessage msg, ByteBuf message) {
HttpResponse res = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.OK);
HttpHeaders.addHeader(res, CONTENT_TYPE, "text/plain; charset=UTF-8");
if (msg instanceof AuthorizeMessage) {
AuthorizeMessage am = (AuthorizeMessage) msg;
if (am.getJsonpParam() != null) {
HttpHeaders.addHeader(res, CONTENT_TYPE, "application/javascript");
} else {
HttpHeaders.addHeader(res, CONTENT_TYPE, "text/plain; charset=UTF-8");
}
} else {
HttpHeaders.addHeader(res, CONTENT_TYPE, "text/plain; charset=UTF-8");
}
HttpHeaders.addHeader(res, CONNECTION, KEEP_ALIVE);
if (origin != null) {
HttpHeaders.addHeader(res, ACCESS_CONTROL_ALLOW_ORIGIN, origin);
if (msg.getOrigin() != null) {
HttpHeaders.addHeader(res, ACCESS_CONTROL_ALLOW_ORIGIN, msg.getOrigin());
HttpHeaders.addHeader(res, ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
}
HttpHeaders.setContentLength(res, message.readableBytes());

Loading…
Cancel
Save