如何在客户端导入 Socket.IO - SOCKET.IO + NODE.JS

3
我一直在尝试创建一个在线游戏,但当我尝试使用 socket.on(...); 或者 socket.emit(...) 时,会出现一个错误,提示 socket 是什么。我看到了一些类似的帖子,并尝试了所有的解决方案,但都没有起作用。我已经成功地使用了 io.connect(...);,它可以正常工作(我认为这意味着我已经正确设置了 socket.io-client)。我只是不明白我做错了什么。如果你需要代码,你可以简单地请求它,虽然我认为这并不必要。谢谢。
2个回答

2
为了在客户端使用SocketIO,首先通过以下方式导入它:
import * as io from 'socket.io-client';

然后,在构造函数中,连接到运行SocketIO服务器的服务器IP和端口。

const socket = io(`172.16.1.3:81`);

在构造函数中,您可能希望设置一个函数,在服务器发送特定消息类型时调用该函数:

socket.on("update-player", handlePlayerUpdateFunction);

并且

function handlePlayerUpdateFunction(message) {
    console.log(`Received message from server: ${message}`);
}

如果这个客户端没有接收到从您的服务器发送的消息,那么问题可能出在您的服务器没有正确设置监听端口。请检查一下。

"socket" 变量未定义?如果是这样,那么您的服务器出现问题,并且它没有在该端口上侦听。 - Shawn Andrews

0
经过尝试和研究,我找到了解决我的问题的方法。在我的代码中添加var socket = io.connect(x.x.x.x:3000);后,一切都正常运行,一切完美无缺。我已经通过安装指南上的CDNJS链接导入了socket.io-client,只需要初始化变量即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接