`
JerryWang_SAP
  • 浏览: 1030992 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

一个最简单的WebSocket hello world demo

阅读更多

服务器端代码不超过42行:

const WSServer = require("./server.js");

var counter = 0;

function createWebsocket() {

  var host = "127.0.0.1";
  var port = "9999";

  var wsServer =  WSServer.startServer(host, port);
  console.log("WebSocket server listens to: " + host + ":" + port);
  wsServer.on('open', (data) => {
    console.log('WS Client has connected: ' + data);

    setInterval(function(){ 
      counter++;
      WSServer.broadcast("Jerry: " + counter );
     }, 3000);
    
  });

  wsServer.on('dataWS', (data) => {
    console.log('Receive Data from WebUI : ' +  data);
  });

  wsServer.on('disconnect', (data) => {
    console.log('WSServer disconnect:' + data.name);
  });

  wsServer.on('close', (data) => {
    console.log('WSServer close: ' + data.name);
  });

  wsServer.on('end', (data) => {
    console.log('WSServer Close: '+data.name);
  });

  wsServer.on('error', (data) => {
  });
}

createWebsocket();

代码第10行创建一个WebSocket服务器,监听在9999端口上:

 

第15~18行每隔3秒发送一个字符串到浏览器,用一个计数器标识每次发送的请求。

代码里所需的server.js我已经上传到我的Github上了:
https://github.com/i042416/KnowlegeRepository/blob/master/practice/nodejs/server.js

使用nodejs启动这个服务器:

 

网页端代码:

<html>
<script src="socket.io.dev.js"></script>
<script>
console.log("1");

  var socket = io('ws://127.0.0.1:9999');
  socket.on('connect', function(){
    console.log("connected!");
  });
  socket.on('event', function(data){
    console.log("event: " + data);
  });

  socket.on('news', function(data){
    console.log("data from server: " + JSON.stringify(data,2,2));
  });

  socket.on('disconnect', function(){
    console.log("disconnect...");
  });

</script>
</html>

浏览器端每隔三秒收到服务器推送的消息,打印在console上:

 

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 

 
0
0
分享到:
评论

相关推荐

    spring websocket完整Demo

    接下来,我们需要创建一个WebSocket消息处理器,它是一个`@Controller`注解的类,用于接收和发送消息。使用`@MessageMapping`注解定义接收和发送消息的方法。 ```java @Controller public class GreetingController...

    websocketdemo.zip

    描述中的"一个最简单的websocket的HelloWorld"意味着这个压缩包可能包含了一个用于展示WebSocket基本用法的入门级代码示例。通常,"Hello, World!"程序是编程初学者的第一个教程,用于演示如何在新的编程语言或技术...

    websocket-demo.zip

    总结,"websocket-demo.zip"是一个SpringBoot实现WebSocket的示例,通过集成`spring-boot-starter-websocket`和`spring-websocket`,我们可以创建一个实时通信的WebSocket应用。该示例展示了如何配置WebSocket端点、...

    node.js+socket.io+websocket使用demo

    node.js 的socket.io的使用,适合nodejs初学者,超精简的node.js websocket网页聊天室DEMO,虽然是很基础,但你至少得会配置nodejs,会敲hello world吧。

    WebSocketDemo(基于开源库websocketpp)

    在本示例"WebSocketDemo"中,我们将探讨如何基于C++开源库websocketpp实现一个简单的WebSocket服务器,支持群聊功能。 WebSocket协议是HTTP/1.1协议的扩展,它使用ws/wss(非加密和加密)作为其URI方案。在C++中,...

    nett权威指南,学习整理的demo代码

    1.netty入门 -- netty-helloworld 2.netty的粘包 - netty-stick 3.netty支持的各协议,包含messagepack、protobuf以及私有协议 - netty-protocol 4.netty开发httpserver服务 - netty-httpserver 5.netty开发...

    Nodejs实现WebSocket代码实例

    **三、HelloWorld** 1. 创建一个项目目录,并在其中创建一个名为`demo.js`的文件。 2. 在`demo.js`中引入Express,并创建一个HTTP服务器监听8000端口。当访问`http://localhost:8000`时,服务器将返回“Hello World...

    tornado的demo

    创建一个简单的 Tornado 应用非常直观,以下是一个基本的 "Hello, World!" 示例: ```python import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): ...

    最新Spring3 MVC 示例 demo程序

    这段代码定义了一个简单的Controller,处理/hello的请求,返回"hello"视图名,通常对应的视图会显示"Hello, World!"这样的欢迎信息。 5. **视图解析** 视图解析器(如InternalResourceViewResolver)会将"hello...

    JAVA HTTP 发送 接收 com.sun.net.httpserver包 demo

    在这个例子中,我们创建了一个监听8000端口的服务器,并设置了一个处理器`MyHandler`,当收到`/hello`的请求时,服务器返回"Hello, World!"。 接下来,讲解如何使用`HttpURLConnection`或`java.net.URL`发送HTTP...

    netty代码demo.rar

    - **Hello World**:简单的服务器和客户端,展示最基本的建立连接和发送数据的过程。 - **心跳机制**:实现客户端与服务器之间的定期心跳检测,确保连接的有效性。 - **多路复用**:展示如何在一个Channel上处理多个...

    express_socket_demo 群聊功能

    `express_socket_demo`是一个基于Express和Socket.IO的示例项目,它演示了如何在Web应用中实现群聊功能。Express是Node.js中广泛使用的Web框架,而Socket.IO则是一个强大的库,用于实现实时双向通信。下面我们将详细...

    .net Core SignalR demo

    这个"SignalR .NET Core demo"是为初学者和开发者提供的一个实践项目,帮助他们理解如何在.NET Core环境中集成和使用SignalR。下面我们将深入探讨SignalR的核心概念、.NET Core的集成以及如何在实际项目中应用。 1....

    .NET-EmbedIO一个微小跨平台模块化的web服务器基于Mono开发

    这将在"/api"路径下提供一个简单的API,返回JSON格式的"Hello, World!"消息。 WebSocket支持是另一个值得注意的功能。EmbedIO提供了WebSocketModule,让你可以轻松地添加WebSocket服务,实现双向通信。这对于实时...

    play框架应用实例

    例如,你可以用以下方式编写一个简单的测试: ```java @Test public void testHelloAction() { running(fakeApplication(), new Runnable() { public void run() { Result result = route(fakeRequest(GET, "/...

    socketio-demo:在线socket.io

    Socket.IO 是一个实时应用框架,它为开发人员提供了一种简单的方式来实现实时、双向通信。这个"socketio-demo"项目显然是一个示例,用于演示如何在Node.js环境中使用Socket.IO进行在线通信。下面我们将深入探讨...

    nodeJS基础入门

    这个例子创建了一个监听3000端口的服务器,当接收到请求时,会返回"Hello World"。 七、Express框架 在实际开发中,通常会使用Express这样的框架简化Node.js应用的构建。Express提供了一套简洁的路由和中间件机制,...

    node-tls-example:在节点中使用tls以及创建证书链的示例

    该软件包包含使用TLS,HTTPS和Websocket的安全... 创建一个包含单行的文件“ hello.js”; console.log(“ Hello world!”); 并运行它: $ node hello.js 那应该按预期工作。 检查以下示例代码: $ git clone

    nodejs实战pdf 源码.zip

    1. **Node.js基础**:介绍Node.js的基本概念、安装与配置,以及如何创建第一个"Hello, World!"程序。 2. **模块系统**:讲解Node.js的模块化设计,如`require`和`exports`,以及内置模块和第三方模块的使用。 3. **...

    expressdemo

    创建一个简单的Express应用只需几步: - 安装Express:`npm install express` - 创建app.js文件,引入Express并创建应用实例。 ```javascript const express = require('express'); const app = express(); ...

Global site tag (gtag.js) - Google Analytics