如何运行WebSocket并进行简单测试

运行WebSocket首先要检查的配置环境:
首先下载并安装node环境
然后安装淘宝镜像,这样下载会快很多

npm config set registry https://registry.npm.taobao.org

如果想检测一下是否安装成功,输入

npm config get registry

此时会出现 https://registry.npm.taobao.org/这个地址,说明安装成功

此时就在项目的根目录文件夹中打开命令窗口,输入

npm install websocket

进行安装WebSocket,成功后目录中会出现一个node_modules这样的文件夹表示安装成功

创建服务器端口
此时创建一个空的js文件,准备在npm官网中打开WebSocket进行创建一个server代码块,官方文档里有示例代码,复制即可

//引入websocket服务模块,然后再引入http,因为需要http来进行支持
var WebSocketServer = require('websocket').server;
var http = require('http');
//创建服务器
var server = http.createServer(function(request, response) {
    console.log((new Date()) + ' Received request for ' + request.url);
    response.writeHead(404);
    response.end();
});
//进行监听
server.listen(3000, function() {
    console.log((new Date()) + ' Server is listening on port 3000');
});
 //创建WebSocket服务器
wsServer = new WebSocketServer({
    httpServer: server
});
 
 //WebSocket建立连接
wsServer.on('request', function(request) {
	//当前的连接使用一个子协议
    var connection = request.accept(null, request.origin);
    console.log((new Date()) + '已经建立连接');
    //监听当前连接 当发送message的时候进行监听,判断类型是utf8和二进制binary
    connection.on('message', function(message) {
        if (message.type === 'utf8') {
            console.log('Received Message: ' + message.utf8Data);
            connection.sendUTF(message.utf8Data);
        }
        else if (message.type === 'binary') {
            console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');
            connection.sendBytes(message.binaryData);
        }
    });
    //监听当前连接关闭的时候触发
    connection.on('close', function(reasonCode, description) {
        console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' 断开连接');
    });
});

注:以上代码已有略微删减,删减的部分并不影响使用

然后再创建一个html页面用于客户端连接

	<script>
		//创建websocket对象
		var ws = new WebSocket('ws://localhost:3000');
		//监听建立连接
		ws.onopen=function(res){
			console.log('连接成功');
			console.log(res)
		}
		//监听有新消息
		ws.onmessage=function(res){
			console.log('有新消息')
			console.log(res)
		}
	</script>

服务器和客户端都创建好了之后,在根目录下打开命令行工具,输入“node 上面创建的js服务器”来创建服务器
然后运行客户端这个html文件,在控制台可以看到 连接成功 并打印出了连接成功的对象
在这里插入图片描述
这时就已经完成了简单的数据交互测试,这时并没有数据传送,所以只能显示连接成功和它的对象,于是为了显示出完整的数据交互场景,在js代码中添加一个setInterval定时器,来进行模拟
在这里插入图片描述
每隔1秒就打印出时间的信息,可以看下控制台的输出
在这里插入图片描述

其实WebSocket的一个很实用的目的就是为了简化数据的发送请求,两者只要建立一次通讯,就可以一直保持连接,并且服务器可以主动的想客户端发送数据,大大简化了数据请求的操作。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Spring Boot WebSocket测试Demo: 1. 创建一个新的Spring Boot项目,添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> </dependencies> ``` 2. 创建一个WebSocket配置类,用于注册WebSocket处理器和插值器: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(new MyWebSocketHandler(), "/my-websocket"); } } ``` 3. 创建一个WebSocket处理器类: ```java public class MyWebSocketHandler extends TextWebSocketHandler { private static final Logger LOGGER = LoggerFactory.getLogger(MyWebSocketHandler.class); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { LOGGER.info("Connection established: " + session.getId()); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { LOGGER.info("Message received: " + message.getPayload()); session.sendMessage(new TextMessage("Response: " + message.getPayload())); } } ``` 4. 创建一个WebSocket客户端类,用于测试WebSocket连接: ```java public class MyWebSocketClient extends WebSocketHandler { private static final Logger LOGGER = LoggerFactory.getLogger(MyWebSocketClient.class); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { LOGGER.info("Connection established: " + session.getId()); session.sendMessage(new TextMessage("Hello, server!")); } @Override public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception { LOGGER.info("Message received: " + message.getPayload()); } } ``` 5. 添加一个测试Controller,用于打开WebSocket连接: ```java @RestController public class TestController { private WebSocketHandler handler = new MyWebSocketClient(); @GetMapping("/test-websocket") public String testWebSocket() throws Exception { WebSocketClient client = new StandardWebSocketClient(); WebSocketSession session = client.doHandshake(handler, "ws://localhost:8080/my-websocket").get(); session.sendMessage(new TextMessage("Hello, server!")); Thread.sleep(5000); session.close(); return "WebSocket test successful!"; } } ``` 6. 运行应用程序,并访问 http://localhost:8080/test-websocket 进行测试。 以上是一个简单的Spring Boot WebSocket测试Demo,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值