• 首页
  • 如何处理黑平台不出款
  • 黑平台怎么追回资金
  • 平台被黑不出款怎么办
  • 联系我们
  • 开通VIP发文章免审核

{{userData.name}}

个人中心
后台
{{item.count}}
{{textHint.loading}}
  • {{data.name}}({{data.count}}){{data.name}}
写文章
当前位置:首页-如何处理黑平台不出款-正文

第三方数据未拉取取不了 平台从第三方或者设备主动拉取数据

专业出黑 专业出黑 如何处理黑平台不出款11个月前0025.54M0
平台从第三方或者设备主动拉取数据场景:设备无法推送数据到平台,需要平台主动去调用第三方平台接口或者去调用设备的tcp服务等。

平台从第三方或者设备主动拉取数据

场景:设备无法推送数据到平台,需要平台主动去调用第三方平台接口或者去调用设备的tcp服务等。

流程 通过实现自定义协议的来自定义处理设备状态获取逻辑,比如通过调用第三方平台获取设备信息. 通过实现自定义协议的.来拦截消息发送,替换掉默认处理方式.在这里使用或者Vertx请求第三方或者设备. 请求后解析数据为对应的消息,调用.(,)完成默认消息处理之后,返回消息. 例子一,通过http到第三方平台获取数据. 第一步定义消息编码解码器

public class HttpMessageCodec implements DeviceMessageCodec {
    
    // 定义一个通用的响应,用于收到请求后响应
    private static final SimpleHttpResponseMessage response = SimpleHttpResponseMessage
            .builder()
            .payload(Unpooled.wrappedBuffer("{success:true}".getBytes()))
            .contentType(MediaType.APPLICATION_JSON)
            .status(200)
            .build();
    
    @Override
    public Transport getSupportTransport() {
        return DefaultTransport.HTTP;
    }
    
    @Nonnull
    @Override
    public Publisher<? extends Message> decode(@Nonnull MessageDecodeContext context){
        // 这里用于别的平台请求/通知jetlinks的请求处理
        // 把消息转换为http消息
         HttpExchangeMessage message = (HttpExchangeMessage) context.getMessage();
        String url = message.getUrl();
        // 这里通常需要判断是不是自己需要的请求,如果不是直接返回/响应,防止非法请求
        if (!url.endsWith("/eventRcv")) {
            return message.response(response).then(Mono.empty());
        }
        // 获取具体消息类型
        ByteBuf payload = message.getPayload();
        String string = payload.toString(StandardCharsets.UTF_8);
        // 通常来说,云平台通知的定义为事件消息(也可以定义成别的消息)
        EventMessage eventMessage = new EventMessage();
        eventMessage.setEvent("test");
        eventMessage.setDeviceId(string);
        eventMessage.setData(string);
        eventMessage.setMessageId(String.valueOf(System.currentTimeMillis()));
        eventMessage.setTimestamp(System.currentTimeMillis());
        return message.response(response).thenMany(Flux.just(eventMessage));
    }
    
    
    @Nonnull
    @Override
    public Publisher<? extends EncodedMessage> encode(@Nonnull MessageEncodeContext context) {
        // 对接其他云平台,命令发起不在这里处理,所以这里返回空就可以了
        return Mono.empty();
    }
    
}

第二步 定义一个消息拦截器

@Slf4j
@AllArgsConstructor
@Getter
@Setter
public class HttpMessageSenderInterceptor implements DeviceMessageSenderInterceptor{
    // 通过构造器注入一个编码消息处理器,用于消息的持久化
	private DecodedClientMessageHandler handler;
    
    private static final WebClient webclient=WebClient.builder().build();
   /**
     * 在消息发送后触发.
     *
     * @param device  设备操作接口
     * @param message 源消息
     * @param reply   回复的消息
     * @param      回复的消息类型
     * @return 新的回复结果
     */
    public <R extends DeviceMessage> Flux<R> afterSent(DeviceOperator device, DeviceMessage message, Flux<R> reply) {
        return Flux.from(
            // 从配置中获取url等各种请求所需参数
            device.getConfigs("url")
                        .flatMap(values->{
                            String url=values.getValue("url").map(Value::asString).orElse(null);
                            // 通常发起请求都是通过方法调用
                            FunctionInvokeMessage invokeMessage = (FunctionInvokeMessage) message;
                            // 从命令发起的上下文中获取消息体
        				  List<FunctionParameter> inputs = invokeMessage.getInputs();
                            Map< String, Object> body=iputs
                                .stream()
                                .collect(Collectors
                                         .toMap(FunctionParameter::getName, 			FunctionParameter::getValue));
                            return webclient  // 构造WebClient
                            	.post()  // 指定请求类型
                            	.uri(url) // 请求路径
                            	.bodyValue(body) // 请求参数
                           		.retrieve() // 发起请求
                           		.bodyToMono(String.class) // 响应参数
                           		.flatMap(s -> {
                                    // 响应参数包装为功能回复参数
                               		FunctionInvokeMessageReply reply1 = new FunctionInvokeMessageReply();
                               		reply1.setSuccess(true);
                               		reply1.setMessage(s);
                               		reply1.setDeviceId(message.getDeviceId());
                               		reply1.setMessageId(message.getMessageId());
                               		reply1.setTimestamp(System.currentTimeMillis());
                               		reply1.setOutput(s);
                               		reply1.setFunctionId(((FunctionInvokeMessage) message).getFunctionId());
                               return Mono.just(reply1)
                                       .map(deviceMessage->(R)deviceMessage);
                           })
                           // 消息持久化
                           .flatMap(msg->handler.handleMessage(device,msg)
                                   .thenReturn(msg));
                        })
                );
    }
}

第三步 定义一个设备状态检测器

/**
* 这个接口会在进入设备详情页面和刷新设备状态时调用
*/
@Slf4j
public class HttpDeviceStateChecker implements DeviceStateChecker {
    @Override
    public @NotNull Mono<Byte> checkState(@NotNull DeviceOperator device) {
        // 如果第三方平台有提供设备状态查询接口,则调用接口确定设备状态,否则设置为设备在线,方便发起功能或者属性查询
        return Mono.just(DeviceState.online);
    }
}

第四步 定义协议处理器

public class HttpProtocolSupportProvider implements ProtocolSupportProvider{
    
        private static final DefaultConfigMetadata httpRequest = new DefaultConfigMetadata(
            "Http请求配置"
            , "")
            .add("url", "url", " http请求地址", new StringType());
    
    @Override
    public Mono<? extends ProtocolSupport> create(ServiceContext serviceContext){
        CompositeProtocolSupport support = new CompositeProtocolSupport();
        support.setId("http-demo-v1");
        support.setName("http调用第三方接口DEMO");
        support.setDescription("http调用第三方接口DEMO");
        support.setMetadataCodec(new JetLinksDeviceMetadataCodec());
        // 设置一个编解码入口
        HttpMessageCodec codec = new HttpMessageCodec();
        support.addMessageCodecSupport(DefaultTransport.HTTP, () -> Mono.just(codec));
        // 添加配置项定义
        support.addConfigMetadata(DefaultTransport.HTTP, httpRequest);
        HttpDeviceStateChecker httpDeviceStateChecker = new HttpDeviceStateChecker();
        // 设置设备状态检查接口
        support.setDeviceStateChecker(httpDeviceStateChecker);
        // 设置HTTP消息拦截器,用于发送HTTP消息
        serviceContext.getService(DecodedClientMessageHandler.class)
                .ifPresent(handler -> support.addMessageSenderInterceptor(new HttpMessageSenderInterceptor(handler)));
        return Mono.just(support);
    }
}

例子二,通过tcp短链接从设备拉取数据.

TODO

相关文章

  • 网上遇到被黑不给提款怎么办 在平台被黑出款通道维护风控审核不给提款

    网上遇到被黑不给提款怎么办 在平台被黑出款通道维护风控审核不给提款

    1、文章重中之重网上平台出端口维护解决办法相信大家可以解决的这种情况,非常多的方式可以私下,不要放弃才是最重要的,如果你自己都觉得没戏了,那么更…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0026.43M0
  • 银行不给大额取款怎么办 在银行存钱,去银行取钱的时候,竟然取不出钱,该怎么办?

    银行不给大额取款怎么办 在银行存钱,去银行取钱的时候,竟然取不出钱,该怎么办?

    在银行存钱,去银行取钱的时候,竟然取不出钱,该怎么办?几年前,我朋友将100万存入当地的某家银行,按照4%的利率,三年总利息就达到12万,到最后…
    专业出黑 专业出黑 如何处理黑平台不出款11个月前0057.30M0
  • 提款通道维护 平台通道维护提款失败, 原因揭秘

    提款通道维护 平台通道维护提款失败, 原因揭秘

    平台通道维护提款失败,不懂怎么办的,找不到人解决,当你看到这个据不同步问题不能出款的时候,肯定是平台限制你的出款,那么个人不管怎么操作是解决的不…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0021.89M0
  • 为什么提不了现 借呗怎么提现不了 这些原因会导致提现失败

    为什么提不了现 借呗怎么提现不了 这些原因会导致提现失败

    借呗怎么提现不了?借呗是支付宝平台上的纯信用贷款产品,但近期有许多用户反映如,自己出现无法使用借呗提现的情况。这是什么原因导致的?一起来看看吧。…
    专业出黑 专业出黑 如何处理黑平台不出款9个月前0019.92M0
  • 婚外情跟踪取证多少费用 婚外情证据种类和取证方式

    婚外情跟踪取证多少费用 婚外情证据种类和取证方式

    导读:婚外情根据过错程度的不同可以分为一般婚外情、有配偶者与他人同居、重婚。近年来,因为各种婚外情行为的出现,产生大量的家庭矛盾,最终导致夫妻双…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0024.06M0
  • 网贷平台不同意协商还款怎么办 网贷还不上可以协商吗

    网贷平台不同意协商还款怎么办 网贷还不上可以协商吗

    网贷还不上可以协商吗您好,1、如果网贷实在还不上的话,可以联系客服进行协商,看能否延长还款期限。至于同不同意,就是由网贷平台来决定的了。…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0023.87M0
  • 出款通道维护不能下款 百度财经:出款通道维护无法下款;解决办法汇总!

    出款通道维护不能下款 百度财经:出款通道维护无法下款;解决办法汇总!

    平台惊现出款通道维护无法下款,详情咨询加微:【********】网络时代无可避免,科技在进步亦是如此,遇到任何事情记住一个道理,冲动是解决不了任…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0018.64M0
  • 网上被黑提款失败 听信“每月完成任务轻松获上万报酬”,德阳一女子陷网络刷单圈套被骗40余万

    网上被黑提款失败 听信“每月完成任务轻松获上万报酬”,德阳一女子陷网络刷单圈套被骗40余万

    “开网店吗?跟我来,让你躺着赚钱!”收到类似信息,你会心动吗?最近,四川德阳市民腾女士就从“朋友”那里寻到这个赚钱门路,殊不知从下单的那一刻起,…
    专业出黑 专业出黑 如何处理黑平台不出款11个月前0025.15M0
  • 被平台黑了不能取款怎么办 2、钱被平台黑了怎么办解决办法?

    被平台黑了不能取款怎么办 2、钱被平台黑了怎么办解决办法?

    1、概略上很多黑网站,很多诱惑的广告的,充值送优惠的,有的直接免费注册送你分的,很多人碰到了,就想试下,结果自己陷进去了,那么就不能出款的了,很…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0020.22M0
  • 黑平台怎么追回资金 做股票配资被诈骗了怎么办?可以追回资金吗?

    黑平台怎么追回资金 做股票配资被诈骗了怎么办?可以追回资金吗?

    配资平台的诈骗套路多种多样,不少人不明是非被骗走了许多血汗钱,苦不堪言。今天我们就来和大家讲讲配资平台诈骗的套路都会哪一些,我们该如何防止诈骗呢…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0030.57M0
  • 网站赢钱被黑平台不给出款 借正规彩票设赌 操控软件庄家稳赢

    网站赢钱被黑平台不给出款 借正规彩票设赌 操控软件庄家稳赢

    以正规彩票“北京赛车PK拾”(以下简称“PK拾”)为彩头,团伙建立微信群私下开盘涉赌、坐庄牟利,利用高赔率吸引大量玩家,**组织者通过操控**软…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0016.67M0
  • 网上赢钱平台不给提款怎么办 网络平台客服说注但异常提现失败怎么办?

    网上赢钱平台不给提款怎么办 网络平台客服说注但异常提现失败怎么办?

    网上平台注单异常提现失败怎样才能提出来?只要还正常+『扣935260085』很多人碰到了这样的问题,自己现已在那个网站玩了很久了,有的甚至玩一两…
    专业出黑 专业出黑 如何处理黑平台不出款1年前0025.45M0

最新文章

  • 小投资摆地摊赚做什么好 摆地摊卖什么最赚钱而且很受欢迎
  • 快速注册chatgpt 中小AI企业,正在远离“牌桌”
  • 小投资摆地摊赚做什么好 2024年,不打工,做四个本小利大生意!!!
  • 云从科技chatgpt 倒反天罡:ChatGPT教人说话?36万视频+77万播客已证实
  • 快速注册chatgpt 文心一言全面免费,最新版本实测!网友:AI 普惠的时代来临了
  • 男性勃起用什么 男人阴茎勃起无力吃什么药好
  • 女方婚书回帖 八旬老人街头写婚书:传统技艺绽放新光彩
  • 自己在网上怎么挣钱 个低成本副业:一部手机即可做,业余时间月入 5000 + 挺可行
  • ai人工智能 下载 国内常用免费AI工具介绍(6.3)——通义APP的“AI生视频”
  • 女方婚书回帖 结婚不用户口本,父母拦不住,离婚却被卡死?
  • chatgpt创始人是俄国人吗 OpenAI创始人Altman离经叛道,16岁出柜,19岁斯坦福辍学
  • wps接入chatgpt chatgpt如何接入wps
  • 网上赢了钱提不了现怎么解决 在平台营前检测
  • 草根如何创业 “创业摆渡人”
  • chatgpt4.0功能解读 ChatGPT-4都逆天升级了,我们还要继续培养“小镇做题家”吗??
  • 可以提款到qq的赚钱游戏 清远男子听信网友可以快速赚钱,没想到前几次真的赚到了……
  • chatgpt4.0功能解读 ChatGPT4.0使用2个月心得:没有想象的那么好!
  • 365赢30万不让提款 注单异常不给提款怎么解决
  • 利用chatgpt进行高考志愿填报 ChatGPT、高考志愿……朱民在达沃斯上跟潮新闻记者聊了这些关键词

没有相关内容

Copyright © 2022-至今 被平台黑了取不了款怎么出黑•现在最火的免费发帖推广平台网站 陕ICP备2023010157号
43 次查询在 0.955 秒, 使用 41.40MB 内存