首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket.IO-java-客户端cookie/自定义标头

Socket.IO-java-客户端cookie/自定义标头
EN

Stack Overflow用户
提问于 2014-06-15 21:25:38
回答 1查看 5.3K关注 0票数 1

我正在为一个网站做一个移动应用程序,他们使用Socket.io和Websocket进行整合。

我正在使用Android上的socket.io-java-client连接到Socket.io服务器,问题是,我不知道如何用它来设置自定义的头/cookie。

下面是代码的样子:

代码语言:javascript
复制
    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();
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-23 17:32:46

实际上,有一些简单的函数可用于在连接之前设置标头:

addHeader(String key, String value)setHeaders(Properties headers)

您还可以使用SocketIO(final String url, Properties headers) (而不是我正在使用的SocketIO(final String url) ):

代码语言:javascript
复制
// Haeader Properties initiation
    private Properties headers = new Properties();

然后以设置cookie为例:

代码语言:javascript
复制
headers.setProperty("Cookie","key=data;key2=data2");

最后在连接时更换

代码语言:javascript
复制
this.socket = new SocketIO(val);

通过

代码语言:javascript
复制
this.socket = new SocketIO(val,this.headers);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24234260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档