websockets javascript mapbox

websockets javascript mapbox

本文关键字:mapbox javascript websockets      更新时间:2023-09-26

相对论是代码的新手,我发现我从解决问题中学到了很多东西,但需要一些指针。

我的项目分为两部分。一个深入社区的响应地图(这是团队正在构建的)和第二个全屏显示地图的地图,其中有标记,当用户点击每个社区时,这些标记会出现和消失,以显示活动。我在自己的服务器上有第二张地图。生产地图需要通过一个Lat,Long对象[我已经找到了如何收集这些坐标]。

1) 我想我需要一个网络插座来连接两者。有人能介绍一下如何将传递对象的两个对象连接起来的具体例子吗?

2) 在服务器上有Lat,Long对象后,如何将它从我的websocket应用程序传递到我的javascript文件中?或者,我应该为消息的新实例创建javascript文件LISTEN?

谢谢!

Websocket在激活后本质上是双向的。。。也就是说,流量可以从任何一侧启动…一旦打开一个websocket连接是持久的,因此即使在不处理流量时也会保持打开

以下是定义WebSocket服务器端的整个nodejs代码

var websocker_server = function() {
    "use strict";
    var port = 8888;
    console.log('listening on    localhost:' + port + ''n');
    var WebSocketServer = require('ws').Server;
    var wss = new WebSocketServer({ port: port });
    wss.on('connection', function connection(ws) {
        ws.send('this message was sent from server side to client');

        ws.on('message', function incoming(message) {
        console.log('received: %s', message);
        });
        // ---
        ws.on("error", function(event) {
            var error_msg = "ERROR on on on error : " + event;
            console.error(error_msg);
        });
        // ---
        ws.on("close", function() {
            console.log("websocket connection close");
        });
    });
}(); //  websocker_server = function()

所以现在我用内联javascript展示了整个html,它定义了一个基本的浏览器端WebSocket客户端

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>bare bones websocket with nodejs serverside</title>
<script type="text/javascript">
    var websocket_connection = (function() {
        var web_socket = new WebSocket('ws://127.0.0.1:8888');
        web_socket.onopen = function (event) {
          web_socket.send("Here's some text client has sent to server upon socket open event!"); 
        };
        web_socket.onmessage = function (event) {
          console.log(event.data);
        }
    }());   //   websocket_connection
</script>
</head>
<body>
</body>
</html>

大局是首先启动nodejs服务器端,它在端口8888上侦听。。。然后从httpd服务器运行html,这样您就可以将浏览器指向它的代码。。。浏览器客户端启动WebSocket连接,该连接一旦打开,就允许向任意方向发送消息。。。我建议您首先使用这里概述的文本格式消息,如果需要,如果您的消息开始变得复杂,可以使用JSON格式

我发布了所有这些代码和支持说明作为回购HERE