📜  express server sockjs (1)

📅  最后修改于: 2023-12-03 15:14:57.262000             🧑  作者: Mango

Express Server SockJS

简介

Express是 Node.js 的一个流行web框架,它可以帮助你构建高效、可扩展的web应用程序。而SockJS则是一个基于WebSockets的JavaScript库,能够实现浏览器和服务器之间的实时双向通信。结合起来,可以创建一个实时的Web应用程序。

本文将介绍如何使用Express和SockJS创建一个实时应用程序。

步骤
安装依赖

首先需要安装Node.js和NPM。在命令行中输入以下命令:

npm install express sockjs

这将会安装Express和SockJS,并添加到你的项目中。

创建Express应用程序

在你的项目目录下创建一个名为 app.js 的文件,输入以下代码:

const express = require('express');
const app = express();

const server = app.listen(3000, () => {
    console.log('App listening on port 3000!');
});

这将会创建一个Express应用程序,监听在3000端口上。

添加SockJS

app.js 文件中添加以下代码:

const sockjs = require('sockjs');
const sockjs_opts = {};

const sockjs_server = sockjs.createServer(sockjs_opts);
sockjs_server.installHandlers(server, {prefix: '/sock'});

sockjs_server.on('connection', (conn) => {
    conn.on('data', (message) => {
        console.log('Message received:', message);
        conn.write(`You said: ${message}`);
    });
});

这将会创建一个SockJS服务,并将其安装在Express应用程序的 /sock 路径下。当有新连接时,可以监听 connection 事件来处理数据。

运行应用程序

在命令行中运行 node app.js,这将会启动Express应用程序和SockJS服务。现在你可以通过浏览器访问 http://localhost:3000 来访问你的应用程序了。

在客户端中使用SockJS

在你的客户端HTML文件中添加以下代码:

<script src="https://cdn.jsdelivr.net/sockjs/1.3.0/sockjs.min.js"></script>

<script>
    const sock = new SockJS('http://localhost:3000/sock');
    
    sock.onopen = () => {
        console.log('Connection opened');
        sock.send('Hello, world');
    };
    
    sock.onmessage = (message) => {
        console.log('Received:', message.data);
    };
</script>

这将会创建一个SockJS连接,当连接成功后发送一条消息。当接收到数据时,会通过 onmessage 事件处理函数进行处理。

测试应用程序

现在你可以打开控制台,查看日志来测试应用程序。当连接成功后,将会看到控制台打印出 Connection opened。然后当你发送一条消息时,你将能在控制台看到你发送数据的日志和服务器返回数据的日志。

结论

Express和SockJS的结合,可以帮助你构建实时的web应用程序。结合简单易用的API,SockJS让WebSockets编程变得更加容易。而Express则可以帮助你构建符合RESTful API的web应用程序。通过将这两个工具结合起来,你可以构建高效、可扩展并且实时的web应用程序。