看到有位童鞋问到json/socket/ws的差异,似乎面试被问到的,就作答了一下。
ws是基于http协议的(当然JAX-WS貌似认为ftp之类的也可以?)以xml为载体的通信方式。
ws的好处是第一是直观(xml吗!),第二是标准(貌似ms从2002年就开始力推了),当然
也方便了异构系统的交互。如果你想提供对外的业务访问的接口,可能需要浏览器,各种语
言的客户端等各种异构系统访问,ws是首选。简单的例子比如你提供个天气预报服务。
java里面首选cxf。
如果说http和ftp是语言,socket顶多算发音。基于socket的编程为你提供了tcp/ip或者
udp的通信的实现;如果你做标准的服务器,比如下载服务器;或者语音通信的程序,或者
视频,文件传输……这些只能用socket。当然单纯用socket写会很烦的,你要处理各种东西
,协议的编解码等等,所以这种情况下推荐mina,netty或者grizzly。
json是个很不错的玩意,本质来说它就是javascript片段描述的对象。说到这里各位聪明的
弟弟妹妹们肯定明白,它应该对浏览器很有用。是的!如果你要做一个ajax的功能的话,
json是最简单有效而且性能灰藏好!比如mtime的很多异步功能都是用json方式传递的。
json好在没有什么门槛,也可以用于异构系统交互,不过如果异构系统不仅仅是浏览器,那
你还是选择ws吧。jsonlib等库都可以直接把一个对象转为json字符串,struts2也提供了
json插件,2.1.8以后是内置插件了。
说点题外话,个人认为ws就是个政治妥协的产物。话说当年ice的作者对此很不屑,认为是
个骗局……不过到底ws是立足了,我们只能干瞪眼。
等项目不忙的时候我会出几篇帖子详细讲讲如何用mina和netty做个语音聊天程序的服务器端和客户端。
分享到:
相关推荐
使用C++解析json客户端发送的json数据,使用socket通讯的案例
vscode配置文件c-cpp-properties.json/launch.json/task.json
超轻量级 JSON / XML / YAML 解析门面 API,用法简单,不依赖具体的 JSON / XML / YAML 实现
用于在C++结构体和json/xml之间互相转换, bson在xbson中支持。 只需要头文件, 无需编译库文件。 具体可以参考example的例子
json/json2.js两个版本
C++ 实现json形式的Socket传输图片,此文件分为客户端和服务端。
linux 下的 Socket 服务器同时与多个客户端进行文件传输, 其中客户端用 Qt 编写的, 可以在Ubuntu 和 Windows 下运行。服务器代码可以在 ubuntu 下运行, 也可以用交叉编译器编译在 ARM 下运行。命令与数据端口分开...
android 利用socket 发送Json数据demo
json 是一种轻量级的文本数据交换格式; json 独立于语言、平台,使用java script语法来描述对象; json 解析器和json库对多种不同语言均提供了支持; json (JavaScript Object Notation) 指的是javascript对象...
echarts map 地图完整json数据 包含中国json数据,各省数据,各市数据
网页/浏览器读取保存json/text文件 https://blog.csdn.net/K86338236/article/details/137273838
Http协议下的通讯,Android利用Json来进行网络数据传输
POST提交数据(JSON/TEXT)到HTTPS服务器
参照博客C# JSON和对象之间互相转换用Winform进行了JSON和对象之间转化的呈现,并用Socket来传输JSON。原文链接:http://www.cnblogs.com/HCCZX/p/5238556.html
服务端发送给客户端,服务端有一串字符串,按照分隔符将其分割,并存入json,发给客户端,然后输出。
开发JAR包集合-cxf/dom4j/jaxb/json/jta/jxl 解压文件得到如下jar包 cxf-2.2.8.jar dom4j-1.6.1.jar ehcache-core-2.2.0.jar jaxb-api-2.2.jar jaxb-impl-2.2.jar json-lib-2.4-jdk15.jar json-lib-ext-...
android网络请求 json传输
json.js and json.jar 博文链接:https://terran-li2008.iteye.com/blog/199088
一般进行图片传输时,先用openCV把图片转换为Mat,然后封装到json当中,然后再从json中解析出来。这次是客户端向服务端传输。
Windows 下的几个小工具一起打包,包含:拾色器color,查找工具everything,json 工具、gif 录制工具