簡體   English   中英

socket.io-java-client cookie /自定義標頭

[英]socket.io-java-client cookies / custom headers

我正在為網站做一個移動應用程序,他們使用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();
        }
    }

實際上,有一些簡單的函數可用於在連接之前設置標頭:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM