【问题标题】:Socket.io : socket.emit not emitting client side/ socket.on not receiving server sideSocket.io:socket.emit 不发送客户端/socket.on 不接收服务器端
【发布时间】:2019-07-25 00:35:37
【问题描述】:

所以我正在使用 socket.io 尝试制作多人迷你游戏, 但是我在客户端使用的 socket.emit() 函数不起作用。 它在客户端浏览器和服务器控制台上都不会引发错误。 它只是不会发出事件。 也许是 socket.on() 服务器端没有收到它。

有一个 html 文件夹,其中包含 jquery.js、socket.io-1.2.0.js、index.html、main.js 和 style.css

这是基本代码,但最后有一个包含完整代码的粘贴箱:

客户端:

const socket = io();
socket.emit('pos', player);

socket.on('pos', (pos) => {
  if (player.show = true) {
    canvasCtx.fillStyle = "#7c5c5c";
    canvasCtx.fillRect(player.x, player.y, playerwidth, playerheight);

    canvasCtx.fillStyle = "grey";
    canvasCtx.fillRect(player.x, player.y + playerheight, shadow_width, 
    shadow_height);
  }

我有一个完美的画布和播放器字典。

服务器端:

var path = require("path");
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.use(express.static('html'))
app.get('/', function(req, res){
  res.sendFile(path.resolve(__dirname + '/html/index.html'));
});

io.on('connection', function(socket){
  socket.on('pos', (player) => {
    io.emit('pos', player);
    console.log('Received player data with values : ' + player.x + ' for x ' 
    + player.y + ' for y '+ player.skin + 'as a skin')
  });
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

我使用 npm 安装 express 和 socket.io

粘贴箱: https://pastebin.com/wrzr9C76

谢谢

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    您不需要提供自己的 socket.io 客户端库副本。当 socket.io 初始化时,它会添加中间件以在路径 /socket.io/socket.io.js 上服务 socket.io.js。您可以在运行应用程序时访问http://localhost:3000/socket.io/socket.io.js 来验证这一点。

    因此,在您的 html 中,请尝试使用 <script src="/socket.io/socket.io.js"></script>,而不是 <script src="socket.io-1.2.0.js"></script>。这应该确保您的问题不是由 socket.io 的客户端和服务器版本不匹配引起的。

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2021-08-24
      • 1970-01-01
      • 2023-04-03
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多