javascript - 无法使用 Socket.IO 向客户端广播

标签 javascript html node.js socket.io

我的node.js 服务器有一个间隔设置,每 60 秒调用一个名为“spawnItem”的函数。当这个函数被调用时,它会执行这段代码:

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);

我的目标是让服务器告诉客户端每 60 秒在某个 x、y 坐标处生成一个项目,但是我无法让服务器发送消息。

谢谢!

最佳答案

您没有发布很多信息,但我认为您使用了错误的对象:

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

相反,您需要使用listen返回的对象:

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

关于javascript - 无法使用 Socket.IO 向客户端广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659115/

相关文章:

javascript - 索引 html 和 Service Worker js 文件可以放在不同的文件夹中吗

Javascript 函数和声明

javascript - 登录后的 Ember Simple Auth 转换

javascript - 如何制作带有标志的语言选择器按钮? (html+js)

javascript - 隐藏显示 div Angular

javascript - 我只使用 JavaScript 创建了一个包含一些记录的表,我想将包含对象的数组设置为本地存储

javascript - 是否有以 HTML、CSS 和 JavaScript 实现的现有在线相册制作工具?

node.js - 如何使用全局安装的 Karma 插件

javascript - 如何在没有 CC 和/或 BCC 收件人的情况下使用 SparkPost?

javascript - 并且不与 Loopback 中的其他查询字段一起使用