【问题标题】:Domain wont console log sent message域不会控制台记录发送的消息
【发布时间】:2020-04-15 03:51:09
【问题描述】:

您好,我正在尝试创建一个聊天应用程序,我在 Google 上四处搜索,但在这一步遇到了一些问题。希望能得到一些帮助...

服务器.js

var express = require("express");
var app = express();

var http = require("http").createServer(app);

var io =  require("socket.io")(http);

var users = [];

io.on("connection", function (socket) {
    console.log("User connected", socket.id);

    socket.on("user_connected", function (username) {

        users[username] = socket.id;

        io.emit("user_connected", username);
    });

    socket.on("send_message", function (data) {
        var socketId = users[data];
        io.to(socketId).emit("new_message", data);
        console.log(data);
    });


});

http.listen(3000, function () {
    console.log("Server Started");
});

聊天.php

function sendMessage(){
var message = document.getElementById("message").value;
io.emit("send_message", {
    sender: sender,
    message: message
});
    return false;
}

io.on("new_message", function (data) {
    console.log(data);
    //var html = "";
    //html += "<li>" + data.sender + " says: " + data.message + "</li>";
    //document.getElementById("messages").innerHTML += html;
});

所以我的问题发生在 chat.php 中,我的 console.log(data) 没有显示,但是数据显示在 server.js 中。为什么这目前不起作用?

【问题讨论】:

  • 什么浏览器?您是否尝试过在数据之前记录一个字符串?
  • 谷歌浏览器,恐怕也没有用
  • users[data.receiver]给出的接收者吗?您还在查看连接接收器的控制台吗?
  • 当您期待日志时,"new_message" 事件可能不会被触发。所以间接地,我怀疑是否调用了function sendMessage
  • @RahulVerma 当我记录 sendMessage 函数时,我得到了发送者、接收者和消息的正确数据

标签: node.js socket.io


【解决方案1】:

根据您之前所说的,您可能会使其比实际情况更复杂。无需更改 chat.php 中的任何内容,但是您可以像这样立即发出数据,而不是创建变量 socketId:

io.on("connection", function (socket) {
  console.log("User connected", socket.id);

  socket.on("user_connected", function (username) {

    users[username] = socket.id;

    io.emit("user_connected", username);
});

  socket.on("send_message", function (data) {
    io.emit("new_message", data);
  });

});

【讨论】:

  • 不用担心,很高兴为您提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多