首先,我打算没有敌意也不打算,只想知道别人的想法.我正在研究客户端和服务器之间的双向通信;客户端是一个Web应用程序.在这一点上,我有几个选择:MS专有的双工绑定,从我听到的不可靠和不自然:彗星和网络套接字(对于支持的浏览器).
我知道这个问题已经在其他方面被问到了,但我对这个方法有一个更具体的问题.考虑到Web套接字是客户端的,客户端代码位于JavaScript中.是否真的有意在JavaScript中直接构建大块应用程序?为什么W3C在Web服务中没有这样做?如果我们能够使用SOAP提供合同并定义事件以及涉及的现有消息传递,那会不会更容易?到目前为止,感觉就像棒子的短端.
为什么不简单地利用JS动态特性并将大量代码留在它所属的位置….在服务器上?
代替
mysocket.send("AFunction|withparameters|segmented");
我们可以说
myServerObject.AFunction("that","makessense");
而不是
... mysocket.onmessage = function() { alert("yay! an ambiguous message"); } ...
我们可以说
... myServerObject.MeaningfulEvent = function(realData) { alert("Since I have realistic data...."); alert("Hello " + realData.FullName); } ...
HTML 5永远占据了……我们是否在错误的方向上浪费了大量的精力?思考?
解决方法
听起来像你还没有完全掌握Websockets的概念.例如你说:
Considering web sockets are client-side
事实并非如此,套接字有两面,您可以将它们视为服务器和客户端,但是一旦建立连接,区别就会模糊 – 您可以将客户端和服务器视为“对等” – 每个可以随时写入或读入连接它们的管道(套接字连接).我怀疑你会从在TCP上学习更多关于HTTP的工作中受益 – WebSockets就像这样与HTTP类似/类似.
关于SOAP / WSDL,从围绕TCP / WebSocket / HTTP的对话的角度来看,您可以将所有SOAP / WSDL对话视为与HTTP相同(即正常的网页流量).
最后,请记住网络编程的堆叠特性,例如SOAP / WSDL如下所示:
SOAP/WSDL --------- (sits atop) HTTP --------- (sits atop) TCP
WebSockets看起来像这样
WebSocket --------- (sits atop) TCP
HTH.