Express+socket.io
12830 단어 node
(app.js)
var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var 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.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
(index.html)
<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
var socket = io('http://localhost');<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
socket.on('news', function (data) {<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
console.log(data);<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
socket.emit('my other event', { my: 'data' });<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
});<span style="border:0px;font-family:inherit;font-style:inherit;font-weight:inherit;vertical-align:baseline;"></span>
##
function onConnect(socket){
// sending to the client
socket.emit('hello', 'can you hear me?', 1, 2, 'abc');
// sending to all clients except sender
socket.broadcast.emit('broadcast', 'hello friends!');
// sending to all clients in 'game' room except sender “ ” ,
socket.to('game').emit('nice game', "let's play a game");
// sending to all clients in 'game1' and/or in 'game2' room, except sender “game1” / “ 2” ,
socket.to('game1').to('game2').emit('nice game', "let's play a game (too)");
// sending to all clients in 'game' room, including sender “ ” ,
io.in('game').emit('big-announcement', 'the game will start soon');
// sending to all clients in namespace 'myNamespace', including sender “myNamespace” ,
io.of('myNamespace').emit('bigger-announcement', 'the tournament will start soon');
// sending to individual socketid (private message) socketid( )
socket.to().emit('hey', 'I just met you');
// sending with acknowledgement
socket.emit('question', 'do you think so?', function (answer) {});
// sending without compression
socket.compress(false).emit('uncompressed', "that's rough");
// sending a message that might be dropped if the client is not ready to receive messages , ,
socket.volatile.emit('maybe', 'do you really need it?');
// sending to all clients on this node (when using multiple nodes) ( )
io.local.emit('hi', 'my lovely babies');
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express.js에서 오류를 처리하는 간단한 방법Express에서 오류를 처리하는 여러 가지 방법이 있습니다. 이를 수행하는 일반적인 방법은 기본 익스프레스 미들웨어를 사용하는 것입니다. 또 다른 방법은 컨트롤러 내부의 오류를 처리하는 것입니다. 이러한 처리 방식...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.