Giter Site home page Giter Site logo

作者你好,接上面发文 about oksocket HOT 9 CLOSED

xuuhaoo avatar xuuhaoo commented on May 4, 2024
作者你好,接上面发文

from oksocket.

Comments (9)

xuuhaoo avatar xuuhaoo commented on May 4, 2024

您的意思是我的Demo出现了问题么?您在哪个分支进行编译的,具体情况您可以加我qq说明,之后问题解决后您可以将解决思路贴出来,谢谢 183459684

from oksocket.

zhouke23 avatar zhouke23 commented on May 4, 2024

你好作者,我是直接下载 zip文件的. 另外,您的demo 并没啥问题,只是说可能不适用于我工程,
原因如下:
完整包 86个字节 包含头 4个字节 body 82个字节 我这边项目的结构定义
1:而我在您demo
Reader.class 里面
ByteBuffer byteBuffer = ByteBuffer.allocate(bodyLength);
这里减去了4个字节的包头长度 , 才可以正常使用!

如果以上面这个 bodyLength 的长度 不减去包头长度那么

作者 后续的处理是
readBodyFromChannel( 传入的body Byte )
这个方法,里面 while (byteBuffer.hasRemaining())

对当前的body的Byte 判断 是否有剩余字节的判断,
在执行了一次以后 还剩下4个字节 所以会一直阻塞 等待接收! 然后超时!

(我刚接触Socket 所以对其他的 定义结构规则不太了解,我只知道我们项目的这种处理方式)!
2:心跳问题,我项目这边,需要在未接收到心跳2次的时候 做一些处理,不知道作者这边的demo 是否有提供的回调?

谢谢作者大大! 本人菜鸟,如果有说错的地方 请见谅!!

from oksocket.

xuuhaoo avatar xuuhaoo commented on May 4, 2024

image
根据上面的截图,bodyLength已经是包体长度,不需要减去4字节,bodyLength顾名思义,是包体的长度.
也就是说,根据您的业务,bodyLength应该是等于82个字节长度的.
您可以看下是否有自定义包头,如果使用默认包头的话,应该没有问题的.
另外您可以连接我们的Demo服务器进行测试,有可能您的服务器出现了包协议传输不正确导致的客户端死机

from oksocket.

xuuhaoo avatar xuuhaoo commented on May 4, 2024

另外,就您说的未接收到心跳2次需要做处理,目前是没有现成回调的,您可以通过重写PulseManager来进行满足您的业务需求,以后会开放关于自定义PulseManager的相关设置

from oksocket.

zhouke23 avatar zhouke23 commented on May 4, 2024

作者:
在没用OKSocket之前 都是自己手动写好了的,只是再无意间看到作者大大的作品,想尝试把原写好的底层改成使用OkSocket!
我使用是的默认的配置! 然后得到的bodyLength 是完整包的包大小,并不是包体的大小, 所以我也很奇怪,但是如果我做了 bodyLength -4 以后 就能得到正确的 包体大小!
不知道是不是跟发包的结构有关系, 我这边发包结构 包头和包体 统一在一个 byte[] 里面, 然后发送出去!
另希望作者大大可以多多加油优化!

from oksocket.

xuuhaoo avatar xuuhaoo commented on May 4, 2024

很感谢您对我们的信任

首先您要确认,使用的是什么依赖,推荐使用jcenter的依赖,或者下载release分支的代码,master上是正在开发还没有完工的代码

from oksocket.

zhouke23 avatar zhouke23 commented on May 4, 2024

我是把okStock作为library 然后在最外层的build.gradle 里面增加
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'

可能正因为如此,可以修改成自己想要的,同时在你写好的代码上再进行 发包,收包的封装 来统一管理吧!

from oksocket.

xuuhaoo avatar xuuhaoo commented on May 4, 2024

恩,注意你一来的library中的分支,master分支是还未开发完成的分支,请不要使用,请使用现在的release分支进行二次开发

from oksocket.

zhouke23 avatar zhouke23 commented on May 4, 2024

我直接下的 zip包 应该是 release的吧? 我看demo 的名称叫
OkSocket-release-1.0.1!
期待作者大大 下版的优化!如果有更新,麻烦告知一下!!多谢!!!

from oksocket.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.