簡體   English   中英

Socket.io不是從客戶端還是從服務器發射的?

[英]Socket.io not Emitting from Client nor Server?

在客戶端,我有以下代碼:

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

socket.on('connect', function(){
    console.log("Connected to server on %s", serverAddress);
});
socket.emit("xxx", {text : "attack"});

在服務器上,我有一個:

var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);
var socket = require('socket.io').listen(server);

socket.on('connect', function() {
    console.log('A user is connected to server');
});
socket.on('xxx', function(data) {
    console.log(data);
});

connect事件已觸發並在服務器上捕獲,但xxx事件甚至未觸發也未捕獲。 怎么了? Console.log沒有報告任何錯誤。

您將socket.io 服務器與socket.io 連接混淆了。

建立新的客戶端連接后,服務器會收到connection事件。 該事件的參數(通常稱為socket )表示該連接。 這是您用來監聽消息的對象:

// server
...
var io = require('socket.io').listen(server);
...
io.on('connection', function(socket) {
  console.log('A user is connected to server');
  socket.on('xxx', function(data) {
    console.log(data);
  });
});

暫無
暫無

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

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