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

USB共享网络下手机连接本地Node.js WebSocket服务器问题求助

手机通过USB共享网络连接本地WebSocket服务器失败的解决方法

可行,问题核心在于客户端连接地址配置,结合以下步骤排查修复:

1. 修正客户端Socket.IO连接地址

你的客户端代码里写的是ws://localhost:3500,手机访问时localhost指向手机自身而非笔记本服务器,必须替换成笔记本在USB共享网络下的局域网IP:

// 替换成你的笔记本USB共享网卡对应的IPv4地址,比如192.168.42.129
const socket = io('ws://192.168.42.129:3500')

获取正确IP方法:在笔记本打开命令提示符,输入ipconfig,找到标注为「USB Ethernet」或「手机USB共享」的网络适配器,查看其IPv4地址。

2. 确保服务器监听所有网卡

默认情况下httpServer.listen(3500)会监听0.0.0.0(所有网卡),但显式指定更稳妥,避免服务器仅绑定本地回环地址:

// 修改服务端的listen代码
httpServer.listen(3500, '0.0.0.0', () => console.log('服务器监听在0.0.0.0:3500'))

3. 重新检查防火墙规则

  • 确认入站规则针对TCP协议的3500端口(Socket.IO基于HTTP/TCP握手建立连接)
  • 规则的「允许连接的网络位置」要包含USB共享对应的网络(通常归类为「私有网络」)
  • 可临时关闭笔记本防火墙测试,若能连接则说明原规则配置有误

4. 验证网络连通性

  • 在手机上ping笔记本的IP,确认能收到响应
  • 用手机端工具(如Termux的telnet [笔记本IP] 3500)测试端口是否开放,能连接则说明网络层面无问题

原始代码参考

客户端代码(需修改连接地址)

const socket = io('ws://localhost:3500') // 此处需替换为笔记本USB共享网卡IP

function sendMessage(e) {
    e.preventDefault()
    const input = document.querySelector('input')
    if (input.value) {
        socket.emit('message', input.value)
        input.value = ""
    }
    input.focus()
}

document.querySelector('form').addEventListener('submit',sendMessage)

// Listen for messages
socket.on('message', (data) => {
    const li = document.createElement('li')
    li.textContent = data
    document.querySelector('ul').appendChild(li)
})

服务端代码(建议修改listen参数)

import { createServer } from "http"
import { Server } from "socket.io"

const httpServer = createServer()

const io = new Server(httpServer, {
    cors: {
        origin: "*"
    }
})


io.on('connection', socket => {
    console.log(`User ${socket.id} connected`)

    socket.on('message', data => {
        console.log(data)
        io.emit('message', `${socket.id.substring(0,5)}: ${data}`)

    })
})

// 建议修改为监听所有网卡
httpServer.listen(3500, '0.0.0.0', () => console.log('listening on 0.0.0.0:3500'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:13:16