[英]How to emit an event in response to an event using socket.io?
我是socket.io的新手,正在嘗試使其正常工作。 我不知道我在這里做錯了什么,因為它看起來非常簡單-但它沒有用。 我想我缺少明顯的東西。 希望其他人可以看到那是什么。
我正在設置socket.io以與節點/快速服務器一起工作。 這是我嘗試做的測試的簡化版本。
服務器:
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = require('socket.io')(server);
/* socket.io test */
io.on('connection', function(socket){
socket.on('helloServer', function(clientMessage){
console.log("Server got 'helloServer' event");
socket.emit('helloClient', { message : "Hi there. We got your message: " + clientMessage.message});
});
});
客戶端具有函數callServer
,當用戶單擊UI中的按鈕時將調用該函數:
var socket = io.connect('http://localhost');
function callServer() {
socket.emit('helloServer', { message : "Hello server!" });
}
socket.on('helloClient', function (serverMessage) {
console.log(serverMessage.message);
});
當我運行此代碼並單擊調用callServer
的按鈕時,服務器確實獲得了事件helloServer
,因為我看到控制台按預期方式記錄了該消息,但是客戶端從未收到helloClient
事件。 好像socket.on
響應函數中的socket.emit
調用永遠不會被調用。
我究竟做錯了什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.