You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用neovis.js连接Neo4j Bolt服务器失败求助

解决neovis.js连接远程Neo4j时的WebSocket连接失败问题

我来帮你拆解这个问题,你遇到的WebSocket错误主要是浏览器安全限制和协议不匹配导致的,跟你本地有没有安装Neo4j完全没关系——毕竟你连的是远程服务器,下面是具体的原因和修复步骤:

核心原因:浏览器不支持原生Bolt协议

你配置里用的bolt://是Neo4j的原生二进制协议,适合后端应用(比如Java/Python程序)直接连接,但浏览器的JavaScript环境只能通过WebSocket协议(ws://或wss://)和Neo4j通信,这是浏览器的安全规则决定的,所以直接用bolt://肯定会失败。

具体修复步骤

1. 替换连接协议为WebSocket版本

把server_url里的bolt://改成wss://(加密WebSocket,大多数远程Neo4j服务都用这个),端口保持原来的32953就行(大部分托管Neo4j服务会把Bolt和WebSocket端口复用,或者自动映射)。修改后的配置片段:

server_url: "wss://54.210.87.221:32953",

2. 解决跨域(CORS)问题

如果你直接双击打开本地HTML文件(浏览器地址是file://开头),浏览器会阻止跨域请求到远程Neo4j服务器,这也是常见的坑。解决方法很简单:

  • 把HTML文件放到一个本地HTTP服务器里运行:
    • 如果你有Python,打开命令行到HTML文件所在目录,运行python -m http.server 8000
    • 然后在浏览器访问http://localhost:8000/你的文件名.html,这样就用HTTP协议访问了,不会触发跨域限制。

3. 验证远程服务器的可用性(可选)

如果改了协议还是不行,先确认远程Neo4j服务是正常的:

  • 用Neo4j Desktop或者cypher-shell工具测试连接bolt://54.210.87.221:32953,输入你的用户名密码,确认能正常连接,排除服务器宕机、密码错误的问题。

修复后的完整代码

<html>
<head>
    <title>DataViz</title>
    <style type="text/css">
        #viz { width: 900px; height: 700px; }
    </style>
    <script src="https://cdn.neo4jlabs.com/neovis.js/v1.0.0/neovis.js"></script>
</head>
<script>
    function draw() {
        let config = {
            container_id: "viz",
            server_url: "wss://54.210.87.221:32953",
            server_user: "neo4j",
            server_password: "cents-propeller-slits",
            labels: {
                "Application": {
                    caption: "name",
                    size: "pagerank",
                    community: "community"
                }
            },
            relationships: {
                "DEPENDS_ON":{
                    caption: false,
                    thickness: "weight"
                }
            },
            initial_cypher: "MATCH p=(Application)-[r:DEPENDS_ON]->() RETURN p LIMIT 25"
        };
        let viz = new NeoVis.default(config);
        viz.render();
    }
</script>
<body onload="draw()">
    <div id="viz"></div>
</body>
</html>

按照上面的步骤操作,应该就能正常加载图谱了。

内容的提问来源于stack exchange,提问作者adsl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:52:25