Rxjava 封装Socket 网络请求

本文介绍了如何使用RxJava2封装Socket网络请求,旨在降低耦合度,提高灵活性。核心工具类简介中,作者强调了面向对象编程的思想,通过发送Bean并返回解析后的Bean。在使用方法部分,讲解了如何进行操作。然而,文章指出,异常处理策略存在问题,建议在实际使用时根据需求进行改造,以避免隐藏错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1项目中接口需要使用socket网络请求,大概有十几个接口。之前用过rxjava简单封装过些简单的http请求的接口,
现在也想按照那种思维模式老封装一下。总体思路是发送数据时传一个bean过去,接收时直接返回已经解析好的
bean,用面向对象的方法编程。如果像以前一样一个工具类中写死好多socket请求的方法,这样耦合性太强,牵一发动全身。 所以使用rxjava 2.0小小封装一下。


2:核心工具类简介

package com.socketutil;

import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Arrays;

import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;

/**
 * Created by admin on 2018/8/3.
 */

public class RxSocket {
    static RxSocket rxSocket;
    OutputStream outputStream = null;
    Socket socket = null;
    InputStream inputStream = null;
    /** 读取数据超时时间 */
    final int READ_TIMEOUT = 15 * 1000;
    /** 连接超时时间 */
    final int CONNECT_TIMEOUT = 5 * 1000;
    final String IP = "218.29.74.138";
    final int PORT = 11274;
    final String TAG = "RxSocket-->",SUCCEED="初始化成功",TIMEOUT="连接超时",SEND_ERROR="发送数据异常";
    /** 网络返回的监听 */
    SocketListener observer;
    public boolean isCancle = false;

    private RxSocket() {
        Observable.just("")
                .subscribeOn(Schedulers.io())
                .subscribeOn(AndroidSchedulers.mainThread())
                .doOnNext(s -> initSocket(IP, PORT))
                .subscribe(s -> Log.d(TAG, SUCCEED));
    }

    public static RxSocket getInstance() {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值