1.建立新的文件夹dome

2.执行 npm init加载package.json文件

3.node不支持websocket所以npm install  ws 下载 ws插件

4.建立index.html文件代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>WebSocket Chat</title>
</head>
<body>
<script type="text/javascript">
  var socket;
  if (!window.WebSocket) {
    window.WebSocket = window.MozWebSocket;
  }
  if (window.WebSocket) {
    socket = new WebSocket("ws://localhost:8090/ws");
    socket.onmessage = function(event) {
      var ta = document.getElementById("responseText");
      ta.value = ta.value + "\n" + event.data;
    };
     socket.onopen = function(event) {
      var ta = document.getElementById("responseText");
      ta.value = "连接开启!";
    };
    socket.onclose = function(event) {
      var ta = document.getElementById("responseText");
      ta.value = ta.value + "连接被关闭";
    };
  } else {
    alert("你的浏览器不支持 WebSocket!");
  }
  function send(message) {
    if (!window.WebSocket) {
      return;
    }
    if (socket.readyState == WebSocket.OPEN) {
      socket.send(message);
    } else {
      alert("连接没有开启.");
    }
  }
</script>
<form onsubmit="return false;">
  <h3>WebSocket 聊天室:</h3>
  <textarea id="responseText" style="width: 500px; height: 300px;"></textarea>
  <br />
  <input type="text" name="message" style="width: 300px" value="Welcome to waylau.com" />
      <input type="button" value="发送消息" onclick="send(this.form.message.value)" />
  <input type="button" onclick="javascript:document.getElementById('responseText').value=''" value="清空聊天记录" />
</form>
</body>
</html>
 
5.建立index.js文件代码如下
 
const WebSocket = require("ws");
const server = new WebSocket.Server({ port: 8090 });
server.on("open", function open() {
console.log("connected");
});
server.on("close", function close() {
console.log("disconnected");
});
server.on("connection", function connection(ws, req) {
const ip = req.connection.remoteAddress;
const port = req.connection.remotePort;
const clientName = ip + port;
console.log("%s is connected", clientName);
// 发送欢迎信息给客户端
ws.send("Welcome " + clientName);
ws.on("message", function incoming(message) {
console.log("received: %s from %s", message, clientName);
// 广播消息给所有客户端
server.clients.forEach(function each(client) {
     if (client.readyState === WebSocket.OPEN) {
    client.send(clientName + " -> " + message);
  }
});
});
});
 
6.启动代码  node index.js
 
7.在浏览器打开index.html 就可以查看了
 

最新文章

  1. Jquery 系列(1) 基本认识
  2. tomcat 8在win8.1中的配置
  3. Webpack使用教程四(Loaders)
  4. poj1129 Channel Allocation(染色问题)
  5. lnmp的使用
  6. ural 1221
  7. Java中的异常处理机制的简单原理和应用
  8. [转]Delphi调用cmd的两种方法
  9. Android----&gt;FrameLayout布局方式
  10. 服务器上的Git
  11. JAVA_SE基础——42.final修饰符
  12. Running ROS on Windows 10
  13. dom4j 创建一个带命名空间的pom.xml 文件
  14. Android Handler的内存泄露问题+解决方案
  15. JavaEE编程实验 实验1 Java常用工具类编程(未完成)
  16. HTML5本地存储之Web Storage实例篇,最有用的是localStorage
  17. PHP解决网站大流量与高并发
  18. Swift 编程思想 阅读笔记
  19. BugFree3.0.4Linux环境安装指南
  20. Excel作为数据源TesTNG做数据驱动完整代码

热门文章

  1. opencv —— HoughCircles 霍夫圆变换原理及圆检测
  2. 从表单驱动到模型驱动,解读低代码开发平台的发展趋势 ZT
  3. 解决Python3下map函数的显示问题
  4. 关于vector的描述
  5. Dart中类的getter和setter
  6. JS 弹出小窗口
  7. js增删class的方法
  8. 【MVC+EasyUI实例】对数据网格的增删改查(上)
  9. 剑指offer-面试题32-分行从上到下打印二叉树-二叉树遍历
  10. P1149 火柴棒等式(打表初尝试)