Nodejs socket.io 在线实时聊天 【笑话集市】代码开源
Nodejs socket.io 在线实时聊天 【笑话集市】代码开源
代码:http://git.oschina.net/chenrh/node-joke 演示:http://localhost:3000/chat
Node.js Socket.io 在线实时聊天 【笑话集市】代码开源
在这个项目中,我们将使用 Node.js 和 Socket.io 构建一个在线实时聊天应用。该应用将允许用户通过浏览器与其他人进行即时通信,并分享笑话。
项目介绍
- 项目名称:Node.js Socket.io 实时聊天【笑话集市】
- 项目代码:GitHub
- 演示地址:http://localhost:3000/chat
技术栈
- 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没过滤
o
根本没法聊天
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>
运行代码
- 将以上两个文件保存到同一个文件夹中。
- 打开终端,进入该文件夹,并运行
node server.js
。 - 访问
http://localhost:3000
,你应该能看到一个基本的聊天界面。
这样就完成了一个简单的在线实时聊天系统的搭建。你可以根据需求扩展功能,比如添加用户登录、存储历史消息等。
请注意,上述代码只是一个基础示例,实际应用中可能需要更多的错误处理和安全措施。