我們目前在使用workerman做一些物聯(lián)網(wǎng)的數(shù)據(jù)平臺,在使用過程中,需要和其他平臺進(jìn)行數(shù)據(jù)的對接,遇到兩個問題:
1、目前很多的平臺采用api接口的方式,需要我們?nèi)ハ螺d數(shù)據(jù)過來,大部分可以通過http的方式下載,用了http-client感覺不錯,可以滿足,感覺少一個定時的設(shè)置
2、有些是提供了ws或者其他tcp的接口,因此有沒有計劃推出一些其他類型的client的計劃? 最好是可以同時創(chuàng)建多個這樣的連接,防止一個有問題,其他的可以替補(bǔ)。
?
?代碼如圖:
?
?錯誤如圖:
?對方用的sockjs 做的ws服務(wù)
?
網(wǎng)頁訪問的例子是這樣訪問的:
$(document).ready( function() {
?? ?var sock = new SockJS('http://192.168.30.5:8080/rtls/sockjs');
?? ?var client = Stomp.over(sock);
?? ?client.debug = null;
?? ?client.connect({}, function(frame) {
?? ??? ?console.log("Stomp.sock.connect");
?? ??? ?client.subscribe("/queue/position", function(message) {
?? ??? ??? ?console.log(message.body);
?? ??? ?});
?? ?});
?? ? sock.onclose = function(event) {
?? ??? ?console.log("Stomp.sock.closed");
?? ?};
});
報錯的時候netstat -nt | grep 8088
應(yīng)該是端口沒被釋放,被time_wait占用了
瀏覽器里測試這個地址ws://123.31.217.23:8088是連不上的,超時。另外即使連上,服務(wù)端得發(fā)來數(shù)據(jù)才能收到數(shù)據(jù)
$(document).ready( function() {
var sock = new SockJS('http://123.31.217.23:8080/rtls/sockjs');
var client = Stomp.over(sock);
client.debug = null;
client.connect({}, function(frame) {
console.log("Stomp.sock.connect");
client.subscribe("/queue/position", function(message) {
console.log(message.body);
});
});
sock.onclose = function(event) {
console.log("Stomp.sock.closed");
};
}); 用頁面,這段代碼 可以獲得到數(shù)據(jù),我理解的意思是,還需要stomp的接口?您也幫我看一下
查了 很多資料 ,發(fā)現(xiàn)應(yīng)該是
stomp over websocket,也就是 基于websocket做 的一個stomp的協(xié)議 。https://blog.csdn.net/a617137379/article/details/78765025#stomp-over-websocket%E5%8D%8F%E8%AE%AE%E5%8E%9F%E7%90%86%E4%B8%8E%E5%AE%9E%E7%8E%B0 好復(fù)雜