Nodejs模块之socket IO介绍
Nodejs模块之socket IO介绍
什么是 Socket.IO? Socket.IO的为了在浏览器和移动设备上创建实时应用而产生的,它可以模糊不同传输机制之间的差异。server端代码: var io = require(‘socket.io’).listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
客户端代码:
<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(‘http://localhost’); socket.on(‘news’, function (data) { console.log(data); socket.emit(‘my other event’, { my: ‘data’ }); }); </script>
怎么用 socket.io
安装
npm install socket.io
利用Node http server 模块
对于这个例子,简单的使用“npm install socket.io
”
服务端(app.js)
var app = require(‘http’).createServer(handler)
, io = require(‘socket.io’).listen(app)
, fs = require(‘fs’)
app.listen(80);
function handler (req, res) {
fs.readFile(__dirname + ‘/index.html’,
function (err, data) {
if (err) {
res.writeHead(500);
return res.end(‘Error loading index.html’);
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
客户端(index.html)
<script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(‘http://localhost’); socket.on(‘news’, function (data) { console.log(data); socket.emit(‘my other event’, { my: ‘data’ }); }); </script>
Nodejs模块之Socket.IO介绍
什么是 Socket.IO?
Socket.IO 是一个用于实现实时双向通信的库,它可以在浏览器和服务器之间建立持久连接。它抽象了各种不同的传输方式,使得开发者可以专注于业务逻辑而不是底层网络细节。
安装
首先,需要安装 socket.io
模块。你可以通过 npm 来安装:
npm install socket.io
服务端代码
以下是一个简单的服务端代码示例,展示了如何设置一个基本的 HTTP 服务器,并使用 Socket.IO 处理客户端连接:
// 引入所需的模块
var http = require('http');
var fs = require('fs');
var io = require('socket.io');
// 创建HTTP服务器
var app = http.createServer(function(req, res) {
fs.readFile(__dirname + '/index.html', function(err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}).listen(80);
// 监听客户端连接事件
io = io.listen(app);
io.sockets.on('connection', function(socket) {
// 向新连接的客户端发送一条消息
socket.emit('news', { hello: 'world' });
// 监听客户端发来的消息
socket.on('my other event', function(data) {
console.log(data);
});
});
客户端代码
在客户端,你需要引入 Socket.IO 库并连接到服务器。以下是客户端的 HTML 文件示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Socket.IO Example</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
// 监听服务器发来的消息
socket.on('news', function (data) {
console.log(data);
// 向服务器发送一条消息
socket.emit('my other event', { my: 'data' });
});
</script>
</body>
</html>
总结
以上代码展示了如何使用 Socket.IO 实现一个简单的实时应用。通过 Socket.IO,你可以在浏览器和服务器之间实现双向通信,从而构建出更丰富的实时应用体验。希望这个简单的示例能够帮助你快速上手 Socket.IO 的使用。
你就把首页的example copy一下无任何原创有意思吗?
的确… 楼主, 大部分论坛上的看文档的能力还是有的 我们整理一下 Wiki 之后大概需要对一些文档进行粗略翻译, 希望加入
Node.js 模块之 Socket.IO 介绍
Socket.IO 是一个用于在浏览器和服务器之间实现实时、双向通信的库。它支持多种传输方式,如 WebSocket、XHR-polling 等,确保了跨浏览器兼容性和最优性能。
安装
首先需要通过 npm 安装 Socket.IO:
npm install socket.io
服务端代码
以下是一个简单的 Node.js HTTP 服务器,结合 Socket.IO 实现基本功能:
// app.js
var http = require('http');
var fs = require('fs');
var io = require('socket.io');
var server = http.createServer(function(req, res) {
fs.readFile(__dirname + '/index.html', function(err, data) {
if (err) {
res.writeHead(500, {'Content-Type': 'text/plain'});
res.end('Error loading index.html');
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(data);
}
});
});
server.listen(80);
var socket = io.listen(server);
socket.sockets.on('connection', function(socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function(data) {
console.log(data);
});
});
客户端代码
在客户端,需要引入 Socket.IO 的客户端库,并监听和发送消息:
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Socket.IO Example</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function(data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
</body>
</html>
示例解释
- 服务端:创建了一个 HTTP 服务器,并使用
socket.io
监听连接。每当一个新的客户端连接时,服务器会发送一条news
消息给客户端。 - 客户端:加载 HTML 文件,并通过 Socket.IO 连接到服务器。当接收到
news
消息时,会在控制台输出消息内容,并向服务器发送my other event
事件。
通过这种方式,你可以在浏览器和服务器之间建立实时通信,实现更丰富、更动态的应用体验。