간단한 소켓 js & 소켓 채팅 모델을 체크하고 있었고 약간 변경했습니다. 사용자가 서버와 소켓 연결을 만들면 250,000 개의 메시지 이벤트가 발생합니다. 서버는 모든 다른 참여자에게 해당 메시지를 보내 응답해야하며 작동합니다. 문제는 어떤 이유로 첫 번째 사용자가 250,000 개의 메시지를 모두 마친 후에 만 다른 사용자가 첫 번째 메시지를 받게된다는 것입니다. 원하는 결과는 사용자와 서버 모두의 일종의 병렬 실행입니다.소켓이 루프를 지연 시키면 서버 응답이 지연됩니다.
저는 localhost/3000 및 크롬 개발자 콘솔을 사용하여 테스트했습니다. 아이디어가 있습니까? 덕분에 .
server.js :
var PORT = process.env.PORT || 3000;
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(express.static(__dirname + '/public'));
io.on('connection', function (socket){
console.log('user connected via socket.io');
socket.on('message', function(message){
console.log('Message received: ' + message.text);
socket.broadcast.emit('message', message);
});
socket.emit('message', {
text: 'welcome to chat app'
})
});
http.listen(PORT, function(){
console.log('server started');
});
app.js :
var socket = io();
socket.on('connect', function(){
console.log('Connected to sockets.io server');
for(var i = 0; i <250000; i++){
socket.emit('message', {
text: 'welcome to chat app'
})
}
});
socket.on('message', function(message){
console.log('New message ' + counter);
});