🗣 Wd提问: 本地如何搭建 websocket服务器
🤖 Ai回答: 在本地搭建 WebSocket 服务器有多种方式,取决于你使用的编程语言。以下是几种常见语言的实现方法:
1、Node.js (使用 ws 库)
安装依赖
bash
npm init -y
npm install ws
创建服务器 (server.js)
javascript
const WebSocket = require('ws');
// 创建 WebSocket 服务器,监听 8080 端口
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) = {
console.log('新客户端连接');
// 监听客户端消息
ws.on('message', (message) = {
console.log('收到消息:', message.toString());
// 回复消息
ws.send(`服务器收到: ${message}`);
});
// 连接关闭事件
ws.on('close', () = {
console.log('客户端断开连接');
});
// 发送欢迎消息
ws.send('欢迎连接到 WebSocket 服务器!');
});
console.log('WebSocket 服务器运行在 ws://localhost:8080');
启动服务器
bash
node server.js
测试客户端 (client.html)
html
<!DOCTYPE html
<html
<head
<titleWebSocket 测试</title
</head
<body
<script
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = function() {
console.log('连接成功');
ws.send('Hello Server!');
};
ws.onmessage = function(event) {
console.log('收到服务器消息:', event.data);
};
ws.onclose = function() {
console.log('连接已关闭');
};
</script
</body
</html
2、Python (使用 websockets 库)
安装依赖
bash
pip install websockets
创建服务器 (server.py)
python
import asyncio
import websockets
async def handle_client(websocket, path):
print(新客户端连接)
try:
发送欢迎消息
await websocket.send(欢迎连接到 WebSocket 服务器!)
async for message in websocket:
print(f收到消息: {message})
await websocket.send(f服务器收到: {message})
except websockets.exceptions.ConnectionClosed:
print(客户端断开连接)
启动服务器
start_server = websockets.serve(handle_client, localhost, 8080)
print(WebSocket 服务器运行在 ws://localhost:8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
启动服务器
bash
python server.py
3、Java (使用 Spring Boot)
添加依赖 (pom.xml)
xml
<dependencies
<dependency
<groupIdorg.springframework.boot</groupId
<artifactIdspring-boot-starter-websocket</artifactId
</dependency
</dependencies
配置 WebSocket (WebSocketConfig.java)
java
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(new MyWebSocketHandler(), /websocket)
.setAllowedOrigins(*);
}
}
WebSocket 处理器 (MyWebSocketHandler.java)
java
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
public class MyWebSocketHandler extends TextWebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
System.out.println(新客户端连接);
session.sendMessage(new TextMessage(欢迎连接到 WebSocket 服务器!));
}
@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
System.out.println(收到消息: + message.getPayload());
session.sendMessage(new TextMessage(服务器收到: + message.getPayload()));
}
@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
System.out.println(客户端断开连接);
}
}
主应用类
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class WebSocketApplication {
public static void main(String[] args) {
SpringApplication.run(WebSocketApplication.class, args);
}
}
客户端连接地址:`ws://localhost:8080/websocket`
4、Go (使用 gorilla/websocket)
安装依赖
bash
go mod init websocket-server
go get github.com/gorilla/websocket
创建服务器 (main.go)
go
package main
import (
log
net/http
github.com/gorilla/websocket
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true // 允许所有跨域请求(仅用于开发)
},
}
func handleWebSocket(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Print(升级失败:, err)
return
}
defer conn.Close()
log.Println(新客户端连接)
// 发送欢迎消息
conn.WriteMessage(websocket.TextMessage, []byte(欢迎连接到 WebSocket 服务器!))
for {
messageType, p, err := conn.ReadMessage()
if err != nil {
log.Println(读取消息错误:, err)
break
}
log.Printf(收到消息: %s, p)
conn.WriteMessage(messageType, []byte(服务器收到: +string(p)))
}
log.Println(客户端断开连接)
}
func main() {
http.HandleFunc(/ws, handleWebSocket)
log.Println(WebSocket 服务器运行在 ws://localhost:8080/ws)
log.Fatal(http.ListenAndServe(:8080, nil))
}
启动服务器
bash
go run main.go
测试方法
1、浏览器测试:打开开发者工具,在 Console 中执行:
javascript
const ws = new WebSocket('ws://localhost:8080');
ws.onmessage = (event) = console.log(event.data);
ws.send('test message');
2、使用在线工具:访问 [WebSocket 在线测试工具](https://www.websocket.org/echo.html)
3、命令行工具:安装 `wscat`
bash
npm install -g wscat
wscat -c ws://localhost:8080
选择适合你技术栈的方法即可快速搭建本地 WebSocket 服务器进行开发和测试。
📣 商家广告 :
👍
0
👎
IP地址: 159.228.156.98
搜索次数: 0
提问时间: 2025-11-10 19:55:36
🛒 域名购买 :
25.gs 61.chat wc.chat lb.gs lifeisacharm.com 3.ln.cn xg.gs wg.gs z-j.net gzzc.net
❓️ 热门提问 :
关键字营销与谷歌广告 vps连接 最贵主机 国内服务器ip 免费虚拟主机和域名 怎样修改vps密码 云计算的数据中心 az.us域名 ftp服务器软件下载 l2tp服务器购买 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
musk.press hswp.cn drone.js.cn yicz.cn xphone.black vshb.cn zd.gs evtolfair.com.cn vr.net.cn sea.fj.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
贵阳水电维修
温泉设计施工公司
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。