Twi*_*one 26 javascript ajax websocket
我有一台Jetty 8服务器正在运行(希望很快就会有websockets).
如果我想通过ajax调用将一些数据发送到服务器,我可以这样做:
$.ajax({ url: "ajax?a=getSomeData" });
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果我连接到我的服务器192.168.1.100,它将从中获取数据的真实URL 192.168.1.100/ajax?a=getSomeData,但是如果我连接到运行相同软件的另一台服务器192.168.1.200,则url将是192.168.1.200/ajax?a=getSomeData.
但是,如果我想使用WebSockets完成同样的事情,我找不到如何做到这一点:
var socket = new WebSocket('ws://www.example.com/');
Run Code Online (Sandbox Code Playgroud)
作品.但我想要一个像相对网址的东西:
var socket = new WebSocket('ws://sockets?a=getSomeData');
Run Code Online (Sandbox Code Playgroud)
所以 - 就像ajax请求 - 如果我连接到我的服务器192.168.1.100,url将是192.168.1.100/sockets?a=getSomeData,如果我连接到192.168.1.200,url将是192.168.1.200/sockets?a=getSomeData.
我怎么能做到这一点?
Poi*_*nty 43
只需自己构建URL:
var socket = new WebSocket("ws://" + location.host + "/whatever");
Run Code Online (Sandbox Code Playgroud)
该location对象是一个属性window对象,并且因此是全局可用的.
要仅获取没有端口的主机,请location.hostname改用.例如,如果websocket服务器侦听另一个端口.
您还可以检查location.protocol是否应该连接wss(https使用时)或ws(何时http使用).
| 归档时间: |
|
| 查看次数: |
14591 次 |
| 最近记录: |