我想使用node.js和socket.io來顯示當前有多少用戶在我的網站上查看某個頁面,方法是發送帶有頁面地址的消息(即/ homepage或/ events)到node.js服務器,然後讀取/寫入一個帶有地址名稱的文件(即homepage.txt或events.txt),獲取當前計數並添加1,然後將其寫回到文件中,然後執行斷開時也是如此,但是請刪除1並保存。node.js socket.io頁面查看器
這裏是我到目前爲止的代碼,目前不包括用於測試的FS功能,還服務器文件和客戶端文件在同一目錄
客戶:
<?php
$url = $_SERVER["REQUEST_URI"];
?>
<body style="overflow: hidden;" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="/node_modules/socket.io/lib/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:5000');
socket.on('connected', function (data) {
$("#log").append('Connected!<br />');
$("#log").append(data + "<br />");
socket.emit('viewing', { page: '<?php echo $url; ?>' });
socket.on('disconnected', function(data) {
$("#log").append("User Disconnected" + "<br />");
});
});
</script>
<div id='log' style='height: 100%; border: 1px solid black;'></div>
服務器:
var io = require('socket.io').listen(5000);
var connected_users = 0;
io.sockets.on('connection', function(socket) {
connected_users++;
console.log("User Connected!");
socket.emit("connected", { message: "Users Online: " + connected_users + "!" });
socket.on('viewing', function(data){
console.log("User Is Viewing: " + data);
});
socket.on('disconnect', function(){
connected_users--;
console.log("User Disconnected!");
socket.emit("disconnected", { message: "Users Online: " + connected_users + "!" });
});
});
但由於某種原因,這似乎並沒有工作,所有的服務器說是「信息 - socket.io啓動」,沒有別的,當用戶連接到客戶端頁面
關於我可能做錯什麼的任何提示/想法。
感謝你提前 - 溫尼
哇,我要說它不應該作爲重要的socket.io.js是在爲客戶端頁面和服務器腳本相同的相對direcotry,但實際工作,三江源非常很多,只有1個問題,我該如何擺脫socket.io調試消息,他們討厭我 – MRVDOG
要隱藏調試消息,請在「var io = ...」行下添加: io.set('log 1級); 可能的日誌級別在這裏解釋:https://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO – m6k
謝謝,我真的想通了「.listen(5000,{log:false}) 「 – MRVDOG