2013-05-20 55 views
1

我的node.js服務器的間隔設置爲每60秒調用一次名爲'spawnItem'的函數。當這個函數被調用,它執行這段代碼:無法使用Socket.IO向客戶端廣播

io.sockets.emit("spawn item", {x: 10, y: 10}); 

每次服務器嘗試執行這一點,立即關閉,並說:

類型錯誤:無法調用未定義

「發射」

根據我在網上閱讀的一切,應該沒問題。

var util = require("util"),object inspection, etc), 
io = require("socket.io"), 
Player = require("./Player").Player; 

此代碼在頁面的頂部,我認爲是所有需要的,或者我錯了嗎?我也有它下面的socket = io.listen(4339)。插座均配置如下等等等等

我也想這樣做:

socket.broadcast.emit("spawn item", bla bla bla); 
socket.emit("spawn item", bla bla bla); 

我的目標是讓服務器告訴客戶端產卵在某些X項目,Y每60秒座標然而,我無法讓服務器發送消息。

謝謝!

+0

你的來源實際上是否有不匹配的括號,還是隻是你的文章中的一個錯字? – veidt

+0

是的,這是一個錯誤的帖子。 – jskidd3

回答

1

你不是張貼了大量的信息,但是我覺得你用錯了對象:

var io = require('socket.io'); 
io.sockets.emit(...); // Fails, wrong object. 

相反,你需要使用listen返回的對象:

var io = require('socket.io').listen(4339); 
io.sockets.emit(...); // Correct use. 
+0

非常感謝! – jskidd3