Nodejs socket.io 在线实时聊天 【笑话集市】代码开源

Nodejs socket.io 在线实时聊天 【笑话集市】代码开源

代码:http://git.oschina.net/chenrh/node-joke 演示:http://localhost:3000/chat

21 回复

Node.js Socket.io 在线实时聊天 【笑话集市】代码开源

在这个项目中,我们将使用 Node.js 和 Socket.io 构建一个在线实时聊天应用。该应用将允许用户通过浏览器与其他人进行即时通信,并分享笑话。

项目介绍

技术栈

  • Node.js:后端运行环境。
  • Socket.io:用于实现实时双向通信。
  • Express:Web 框架,简化服务器设置。
  • EJS:模板引擎,用于渲染页面。

示例代码

1. 安装依赖

首先确保安装了 Node.js 和 npm。然后创建一个新的项目目录并初始化:

mkdir node-joke-chat
cd node-joke-chat
npm init -y

安装必要的依赖包:

npm install express socket.io ejs
2. 创建基本的服务器

创建 server.js 文件,并添加以下代码:

const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

app.set('view engine', 'ejs');
app.use(express.static('public'));

io.on('connection', (socket) => {
    console.log('a user connected');

    socket.on('disconnect', () => {
        console.log('user disconnected');
    });

    socket.on('chat message', (msg) => {
        io.emit('chat message', msg);
    });
});

http.listen(3000, () => {
    console.log('listening on *:3000');
});
3. 创建前端页面

public 目录下创建一个 index.ejs 文件,并添加以下 HTML 和 JavaScript 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>笑话集市</title>
</head>
<body>
    <ul id="messages"></ul>
    <input id="m" autocomplete="off" />
    <button onclick="sendMessage()">发送</button>

    <script src="/socket.io/socket.io.js"></script>
    <script>
        const socket = io();

        function sendMessage() {
            const input = document.getElementById('m');
            socket.emit('chat message', input.value);
            input.value = '';
        }

        socket.on('chat message', function(msg) {
            const item = document.createElement('li');
            item.textContent = msg;
            document.getElementById('messages').appendChild(item);
        });
    </script>
</body>
</html>
4. 运行项目

启动服务器:

node server.js

在浏览器中访问 http://localhost:3000,你将看到一个简单的聊天界面,可以与其他连接的用户进行聊天。

总结

这个项目展示了如何使用 Node.js 和 Socket.io 构建一个简单的在线实时聊天应用。你可以在此基础上扩展功能,例如增加用户认证、存储聊天记录等。希望这个示例对你有所帮助!


socket.io能内存泄漏,能在页面上显示内存占用吗?

做的还是蛮粗糙的。。。。

小哥…你的这个localhost:3000

setInterval(function(){ $(’#input’).val(“test”); var event = jQuery.Event(“keydown”); event.keyCode= 13; $(’#input’).trigger(event); },1) 做了一下坏人,真想看看服务器的负载能到多少,不知道socket.io的性能怎么样

贱笑了,一楼是地址

小伙子,别把我服务器搞宕机了

不错。。呵呵

哈哈哈哈,笑尿

我写了一句<script>window.close();</script>

你太坏了,谷歌没有影响

xss没过滤

根本没法聊天

router.get(’/’, function(req, res) { ^ TypeError: Cannot call method ‘get’ of undefined 这里面的express是哪个版本?

可以看 package.json

不错,有代码吗?

对于帖子 “Nodejs socket.io 在线实时聊天 【笑话集市】代码开源” 的内容,我们可以基于socket.io来实现一个简单的在线实时聊天系统。socket.io 可以帮助我们实现实时通信,让客户端和服务器可以实时地发送消息给对方。

示例代码

首先,你需要安装必要的依赖库。在项目根目录下运行以下命令:

npm install express socket.io

接下来是主要的文件结构:

  • server.js - 用于启动服务器并处理socket连接。
  • index.html - 客户端页面,用于用户输入信息并显示接收的信息。

server.js

const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });

  socket.on('chat message', (msg) => {
    io.emit('chat message', msg);
  });
});

http.listen(3000, () => {
  console.log('listening on *:3000');
});

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Joke Chat</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(function () {
  var socket = io();
  $('form').submit(function(e){
    e.preventDefault(); // prevent default form submission
    socket.emit('chat message', $('#m').val());
    $('#m').val('');
    return false;
  });
  socket.on('chat message', function(msg){
    $('#messages').append($('<li>').text(msg));
  });
});
</script>
</head>
<body>
<ul id="messages"></ul>
<form action="">
  <input id="m" autocomplete="off" /><button>Send</button>
</form>
</body>
</html>

运行代码

  1. 将以上两个文件保存到同一个文件夹中。
  2. 打开终端,进入该文件夹,并运行 node server.js
  3. 访问 http://localhost:3000,你应该能看到一个基本的聊天界面。

这样就完成了一个简单的在线实时聊天系统的搭建。你可以根据需求扩展功能,比如添加用户登录、存储历史消息等。

请注意,上述代码只是一个基础示例,实际应用中可能需要更多的错误处理和安全措施。

回到顶部