gpt4 book ai didi

使用 Node.js 和 Socket.IO 单击时的 jQuery 函数

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:27 25 4
gpt4 key购买 nike

我已经按照建议创建了一个简单的聊天应用程序(效果很好),但我无法弄清楚如何使用 Socket.IO 跨 Web 套接字启动 jQuery 函数。

例如,我有一个可以单击的按钮:

<button id="button">
Click me!
</button>

我希望按钮在单击时执行一个功能:

$("button").click(function() {
doSomething();
});

这是我在客户端的示例

var socket = io.connect('http://localhost:3000');

function doSomething() {
$('body').css({
background: "red"
});
}

这是我在服务器端的内容(我的 server.js 文件) - 我认为这可能是导致问题的部分原因:

var io = require('socket.io'),
connect = require ('connect');

var app = connect().use(connect.static('public')).listen(3000);
var commands = io.listen(app);

commands.sockets.on('connection', function (socket){

// Possibly insert handler here?

});

以防万一我不清楚目的 - 我希望当单击按钮时,所有连接的客户端的主体背景变成红色。

最佳答案

您必须首先在单击按钮时向您的node.js/socket.io-server 发出一个事件。然后在服务器端,您必须向所有客户端发送。在客户端,您必须监听该服务器端事件。而且你的服务器看起来不太好。

尝试这样的事情,例如:

"use strict";

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


io.on('connection', function (socket) {
//senden an socket dass er verbunden ist
//socket.emit('userOnline', {message: 'verbunden'});

//Informationen vom User holen
socket.on('changeBgColor', function (color) {
console.log(color);
socket.broadcast.emit('changeBgColorEveryWhere', color.color);
socket.emit('changeBgColorEveryWhere', color.color);
});
});

server.listen('3000');

例如在客户端:

<!doctype html>
<html>
<head>
<title>test</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script type="text/javascript">
var socket = io('ws://localhost:3000/');

$(document).off('click', '#button').on('click', '#button', function (e) {
console.log('click');

socket.emit('changeBgColor', {color: 'red'});
e.preventDefault();
});

socket.on('changeBgColorEveryWhere', function (color) {
console.log(color);
$('body').css('background', color);
});
</script>

<button id="button">Button</button>
</body>
</html>

关于使用 Node.js 和 Socket.IO 单击时的 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30365337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com