我在学习JavaScript并遵循Daniel Shiffman的p5.js教程。我制作了一款有趣的小型乒乓球游戏,并希望通过多人游戏让它更上一层楼。我想从基础入手,并遵循Daniel的Socket教程。我可以成功访问我的网站并查看我的画布。但是,我想通过局域网提供下一个级别。我不知道如何做到这一点,我有一些麻烦。下面是我使用的客户端代码:通过局域网连接的Socket.io连接
var socket;
function setup() {
socket = io.connect();
createCanvas(200, 200);
}
function draw() {
background(0);
fill(255);
ellipse(mouseX, mouseY, 60, 60);
}
服务器代码:
// Imports
var express = require('express');
var socket = require('socket.io');
// Create Local host
var app = express();
var server = app.listen('3000')
app.use(express.static('public'));
// Sockets
var io = socket(server);
io.sockets.on('connection', newConnection);
// New Connection
function newConnection(socket) {
console.log("New Connection: " + socket.id);
}
console.log("Server running...");
如果需要的话,这里是我的index.html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Learning Sockets</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>
<script src="/libraries/addons/p5.min.js"></script>
<script src="/libraries/addons/p5.dom.min.js"></script>
<script src="/libraries/addons/p5.sound.min.js"></script>
<script src="sketch.js"></script>
<script src="/libraries/addons/p5.dom.js"></script>
</head>
<body>
</body>
</html>
记住我初学者。我试着看过其他帖子,但答案太复杂了,最后,我不认为它解决了我的问题。不知道它是否重要,但我确实安装了node.js,express和socket.io。我曾尝试使用http://my-ip:3000进行连接。我可以通过localhost:3000和my-IP:3000从我的电脑连接。但是,当我尝试从另一台计算机连接时,它不起作用。是的,我连接到同一个网络。
丹尼尔Shiffman的播放列表:https://www.youtube.com/playlist?list=PLRqwX-V7Uu6b36TzJidYfIYwTFEq3K5qH
它很可能是您的防火墙阻止连接。您应该在防火墙设置中解除端口3000的阻止。 –