WebSocket学习笔记 -- 环境搭建1

简介: WebSocket学习笔记 -- 环境搭建1

一、安装NodeJS

官网下载,下载好后一路下一步

https://nodejs.org/en/

二、配置环境

1、新建一个node文件夹

2、新建一个JSON文件,名字为package.json,内容为

{
  "name": "socket",
  "version": "0.0.1",
  "description": "myproject",
  "dependencies": {},
  "devDependencies": {}
}

3、在node文件夹目录下打开cmd,安装两个组件net、ws

npm install net --save-dev
npm install ws --save-dev

4、新建一个SocketClient.js文件,内容为

var net = require('net');
var client = net.connect('9001','192.168.1.106',function(){
    console.log('已经与服务器连接');
    client.write('hello server');
});
client.on('data',function(data){
    console.log(data.toString());
    //client.end();
});
client.on('end',function(){
    console.log('服务端断开');
});

5、新建一个SocketServer.js文件,内容为

var net = require('net');
var chatServer = net.createServer(),
    clientList = [];
    clientMap = new Object();
var ii = 0;
chatServer.on('connection', function(client) {
    client.name = ++ii;
    clientMap[client.name] = client;
    //数据接收事件
    client.write('Hi client');
  client.on('data', function(data) {
      console.log('客户端传来:' + data);
      //client.write(data);
      broadcast(data, client);// 转发来自客户端的信息
  });
    //数据错误事件
    client.on('error',function(exception){
        console.log('client error:' + exception);
        client.end();
    });
    //客户端关闭事件
    client.on('close',function(data){
        delete clientMap[client.name];
        console.log(client.name +'下线了');
        broadcast(client.name +'下线了',client);
    });
});
function broadcast(message, client) {
    for(var key in clientMap){
        clientMap[key].write(client.name + 'say:' + message + '\n');
    }
};
chatServer.listen(9001, function(){
  var address = chatServer.address();
  console.log('服务已监听: %j', address);
});

6、新建一个WsServer.js文件,内容为:

var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port: 9000});
var i = 0;
//var wsObj = {};
wss.on('connection', function(ws) {
    ws.name = ++i;
  //wsObj[ws.name] = ws;
    console.log(ws.name + '上线');
    ws.on('message', function(message) { 
        ws.send(message);
        console.log('received: '+ ws.name +'%j', message);
    });
    ws.send(ws.name + ', welcome');
    ws.on('close', function(){
        //global.gc();    //调用内存回收   
        console.log(ws.name + ', leave');
    });
});


相关文章
WebSocket学习笔记 -- 环境搭建2
WebSocket学习笔记 -- 环境搭建2
|
移动开发 网络协议 HTML5
慧安-WebSocket协议学习笔记
慧安-WebSocket协议学习笔记
94 0
|
消息中间件 JSON 前端开发
WebSocket |学习笔记
快速学习 WebSocket
173 0
WebSocket |学习笔记
|
XML 前端开发 JavaScript
SpringBoot 整合 WebSocket|学习笔记
快速学习 SpringBoot 整合 WebSocket
123 0
SpringBoot 整合 WebSocket|学习笔记
|
存储 Java
netty框架的学习笔记 + 一个netty实现websocket通信案例
一、前言 1.什么是netty? 2.netty的使用场景。 3.学习目录 二.java io通信 三.netty入门 四.websocket入门 五.netty实现websocket通信案例。 1.
296 0
|
移动开发 网络协议 前端开发
spring学习笔记(八)webSocket
spring学习笔记(八)webSocket
216 0
|
5月前
|
前端开发 网络协议 JavaScript
在Spring Boot中实现基于WebSocket的实时通信
在Spring Boot中实现基于WebSocket的实时通信
|
2月前
|
开发框架 前端开发 网络协议
Spring Boot结合Netty和WebSocket,实现后台向前端实时推送信息
【10月更文挑战第18天】 在现代互联网应用中,实时通信变得越来越重要。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为客户端和服务器之间的实时数据传输提供了一种高效的解决方案。Netty作为一个高性能、事件驱动的NIO框架,它基于Java NIO实现了异步和事件驱动的网络应用程序。Spring Boot是一个基于Spring框架的微服务开发框架,它提供了许多开箱即用的功能和简化配置的机制。本文将详细介绍如何使用Spring Boot集成Netty和WebSocket,实现后台向前端推送信息的功能。
571 1
|
2月前
|
前端开发 Java C++
RSocket vs WebSocket:Spring Boot 3.3 中的两大实时通信利器
本文介绍了在 Spring Boot 3.3 中使用 RSocket 和 WebSocket 实现实时通信的方法。RSocket 是一种高效的网络通信协议,支持多种通信模式,适用于微服务和流式数据传输。WebSocket 则是一种标准协议,支持全双工通信,适合实时数据更新场景。文章通过一个完整的示例,展示了如何配置项目、实现前后端交互和消息传递,并提供了详细的代码示例。通过这些技术,可以大幅提升系统的响应速度和处理效率。