Traccar WebSocket连接失败求助:按官方文档操作仍无法连接
无法建立Traccar WebSocket连接以获取实时数据
我是WebSocket新手,想通过Traccar的WebSocket API获取实时数据,但始终无法建立连接。我已经参照了Traccar的官方文档。
我的代码如下:
$.ajax({ //url: "http://[IP]:8082/api/session", url: "http://demo.traccar.org/api/session", dataType: "json", type: "POST", data: { email: "useremail@email.net", password: "myPassword" }, success: function(sessionResponse){ console.log(sessionResponse); openWebsocket(); } }); var openWebsocket = function(){ var socket; socket = new WebSocket('ws://demo.traccar.org/api/socket'); socket.onclose = function (event) { console.log("WebSocket closed"); }; socket.onmessage = function (event) { var i, j, store, data, array, entity, device, typeKey, alarmKey, text, geofence; console.log(event.data); }; };
目前遇到的错误:
问题排查与解决方法
- 补全WebSocket端口:你当前的WebSocket URL漏了Traccar默认的HTTP端口8082,正确地址应为
ws://demo.traccar.org:8082/api/socket,这是连接失败的核心原因之一。 - 确认会话Cookie传递:登录成功后,浏览器需携带会话Cookie才能建立WebSocket连接。如果是跨域场景,要在Traccar配置文件
traccar.xml中添加<entry key="web.origin">你的页面域名</entry>开启跨域支持,确保Cookie能正常传递。 - 添加错误监听:给WebSocket实例加上
onerror事件,方便查看具体错误信息,辅助排查问题。
修正后的WebSocket初始化代码:
var openWebsocket = function(){ var socket; socket = new WebSocket('ws://demo.traccar.org:8082/api/socket'); socket.onopen = function(event) { console.log("WebSocket连接成功"); }; socket.onclose = function (event) { console.log("WebSocket closed"); }; socket.onmessage = function (event) { console.log(event.data); }; socket.onerror = function(error) { console.error("WebSocket错误详情:", error); }; };
内容的提问来源于stack exchange,提问作者P7rck
相关产品推荐
相关产品推荐

