簡體   English   中英

客戶端未從服務器接收消息

[英]Client not receiving message from server

嗨,我有一個節點js服務器和即時通訊使用套接字進行通信。

指數:

<script src="socket.io/socket.io.js"></script>

客戶端JS:

var socket = io.connect("http://localhost:8081");

socket.on('hi', function(data){
    console.log("g");
    console.log(data);
});

因此,似乎可以很好地連接到服務器。 我有一個名為“ hi”的套接字,等待任何傳入的消息。 我添加了2個控制台日志,以防數據為空,它仍然會向控制台打印一些內容。

服務器:

var express = require("express");
var app = express();
var server = require("http").Server(app);
var io = require("socket.io")(server);
var mazeGenerator = require("generate-maze");

app.use(express.static("public"));

io.on("connection", function(socket) { // EDITED
    console.log("A player has connected - sending maze data...");
    socket.emit("hi", "hi");        
});

因此,當我刷新頁面時,客戶端將連接,並且在CMD中,我會看到“播放器已連接...”控制台日志。 從那以后,它在服務器或客戶端上的空白,我可以一直刷新,並且會一直說,由客戶端控制台連接的播放器保持空白

由於已證明已建立連接,因此我懷疑這是發出數據的方式的問題。 根據,您的第二個參數hi可能不會被視為要傳輸的數據

https://socket.io/docs/server-api/#socket-emit-eventname-args-ack

以我的理解, socket.io發出Object而不是String所以您可以嘗試這樣做嗎?

io.on("connection", function(socket) {
    console.log("A player has connected - sending maze data...");
    socket.emit("hi", {data: "hi"});        
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM