【发布时间】: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 函数时,我得到了发送者、接收者和消息的正确数据