我有一個非常基本的設置與socket.io但我無法讓我的服務器發送回消息,一旦建立連接。socket.io不發送事件從服務器到客戶端連接
當連接建立到我的服務器時,我希望服務器發回消息給客戶端。我試着用下面的代碼來實現:
服務器
// Modules
var fs = require('fs');
var https = require('https');
// Certificate
var options = {
pfx: fs.readFileSync('<my cert>')
};
// Create Server
httpsServer = https.createServer(options);
// Create websocket
var io = require('socket.io')(httpsServer);
// Listen on a port
httpsServer.listen(4000,function() {
console.log('listening on *:4000');
});
io.on('connection', function(socket) {
console.log('a user connected');
socket.emit('test','you connected');
});
客戶
var socket = io('https://<my server>:4000');
當我執行這個代碼,網頁套接字被建立,我的服務器控制檯顯示消息"a user connected"
。但是,消息['test','you connected']
不會通過套接字發出。
我一直能夠得到這個工作的唯一方法是使用setTimeout()
等待500毫秒才發出事件,在這種情況下,它的工作。
這是爲什麼?如何配置我的服務器,以便在用戶連接後立即自動回覆消息?
檢查我的答案,讓我知道,它的工作完全沒有給我。 –
你的客戶端代碼是什麼樣的? – usandfriends