我正在为一个网站做一个移动应用程序,他们使用Socket.io和Websocket进行整合。
我正在使用Android上的socket.io-java-client连接到Socket.io服务器,问题是,我不知道如何用它来设置自定义的头/cookie。
下面是代码的样子:
public void runIO(){
try {
SocketIO socket = new SocketIO("http://192.168.1.60:1337");
socket.connect(new IOCallback() {
@Override
public void onMessage(JSONObject json, IOAcknowledge ack) {
try {
System.out.println("Server said:" + json.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onMessage(String data, IOAcknowledge ack) {
System.out.println("Server said: " + data);
}
@Override
public void onError(SocketIOException socketIOException) {
System.out.println("an Error occured");
socketIOException.printStackTrace();
}
@Override
public void onDisconnect() {
System.out.println("Connection terminated.");
}
@Override
public void onConnect() {
System.out.println("Connection established");
}
@Override
public void on(String event, IOAcknowledge ack, Object... args) {
System.out.println("Server triggered event '" + event + "'");
}
});
// This line is cached until the connection is establisched.
socket.send("Hello Server!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}发布于 2014-06-23 17:32:46
实际上,有一些简单的函数可用于在连接之前设置标头:
addHeader(String key, String value)和setHeaders(Properties headers)
您还可以使用SocketIO(final String url, Properties headers) (而不是我正在使用的SocketIO(final String url) ):
// Haeader Properties initiation
private Properties headers = new Properties();然后以设置cookie为例:
headers.setProperty("Cookie","key=data;key2=data2");最后在连接时更换
this.socket = new SocketIO(val);通过
this.socket = new SocketIO(val,this.headers);https://stackoverflow.com/questions/24234260
复制相似问题