php做为socket客户端如果发送实体类(bean)给JAVAsocket服务端?
由于JAVA服务端是其他人开发的, 现在只有一份协议文档. 现在做了一个扫码开箱的功能. APP + JAVA + socket的方式. 由于业务需求现在要增加小程序扫码开箱的方式.
通过查看安卓的源码与服务端的JAVA代码ps:LZ自身只会PHP是同事看的APP发送的是一个实体类给后端的. 那么PHP怎么搞一个实体类给JAVA, 还是可以使用其它方案解决?
更新...
Byte bytes[26] = {0,8,0,22,[marr[0] intValue],[marr[1] intValue],[marr[2] intValue],[marr[3] intValue],0,0,0,1,0,0,0,0,0,0,0,0,[mmarr[0] intValue],[mmarr[1] intValue],[mmarr[2] intValue],[mmarr[3] intValue],0x0D,0x0A};
send(self.clientSocket, bytes, 26, 0);
上面一段是ios APP里的一段, 发送的是一个Byte. 那是不是PHP转成一个Byte发送就行呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
发送的不是实体类, 传输过程叫数据流. 程序接到后是二进制.
而JAVA里的byte是基本变量类型. C, python, php, nodejs, 只有JAVA才有byte的类型.
一个byte等于八位的二进制 如: 0000 1111, 二进可以转成对应的ASCII码或unicode码.
发送实体类肯定是要序列化成字节的,看看安卓那边用的什么序列化框架。如果是支持跨语言的那就好办,不支持就和JAVA服务器端的人商量下特殊处理吧。
如过没有现成的框架或sdk的话会很麻烦,因为php根本没有字节这个东西,需要pack,unpack各种转成二进制,而且需要注意大小端字节序,还有需要多线程或多进程来实现心跳包、守护进程等,而php对这方面支持不是很好。
可以试下swoole或者workman看看能不能实现吧,应该也不是很好实现,需要配合服务端java各种调试的。