javascript - JavaScript server.io 不断获得新连接
问题描述
我对javascript非常陌生。
我已经使用 p5.js 创建了一个套接字程序,下面的 node.js 是所需的代码。
服务器.js
var express= require('express');
var app=express();
var server=app.listen(9800);
app.use(express.static('public'));
console.log("My server is running");
var socket=require('socket.io');
var io=socket(server);
io.sockets.on('connection',newConnection);
function newConnection(socket){
console.log('new connection:'+socket.id);
}
草图.JS
var socket;
function setup() {
createCanvas(500,300);
background(51);
socket=io.connect('http://localhost:9800');
}
function draw() {
noStroke();
fill(255);
ellipse(mouseX,mouseY,36,36);
}
索引.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>FirstProject</title>
<script src="libraries/p5.js" type="text/javascript"></script>
<script src="libraries/p5.dom.js" type="text/javascript"></script>
<script src="libraries/p5.sound.js" type="text/javascript"></script>
<script src="sketch.js" type="text/javascript"></script>
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
<style> body {padding: 0; margin: 0;} canvas {vertical-align: top;} </style>
</head>
<body>
</body>
</html>
现在的问题是即使我只在浏览器中打开我的sketch.js 的一个实例,server.js 的控制台也会不断地打印出随机ID。我必须使用 CTRL+C 杀死它。我该如何纠正它。
谢谢!
解决方案
对于未来的读者。
如果你们中的任何人遇到同样的问题,那么你就来对了地方。经过几个小时的项目、网络搜索和在线教程的娱乐,我开始知道这里出了什么问题。
所以问题出在客户端和服务器上的 Socket.io 版本上。是的,您需要在客户端和服务器上拥有相同版本的 socket.io。
socket.io 网站简单地说:
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
</script>
所以它可能会令人困惑/socket.io/socket.io.js
。实际上这个文件是由服务器代码动态创建的。
请参阅此Socket.IO 客户端 .js 文件位于何处?.
谢谢!
推荐阅读
- kotlin - Kotlin TimerTask - 如何每 5 秒重复一次任务?
- java - 如果我使用 Youtube 上的视频,谷歌营销 api 如何填充 AdVideoAsset 对象
- pint - 如何防止品脱将非常小的百分比转换为“milli-pct”?
- python - 将 websocket 价格流保存到本地数据库
- kotlin - 浓缩咖啡pressKey(KeyEvent.KEYCODE_CAPS_LOCK)不工作
- ios - 使用 Swift 5.3.2 编译的模块不能被 Swift 5.4.2 编译器(芯片 M1)导入
- jquery - Jquery 3.6.0-> 1.Ajax 成功响应仅在 IE 中未定义,2).data 在开发工具的网络中显示,它在 fire fox 和 chrome 中工作正常
- yarnpkg - 将纱线工作区作为依赖添加到其他工作区
- c - 无法打印出名称消息 C 套接字
- javascript - 按钮按下不激活功能