首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >socket.io从onclick操作获取数据,然后将数据传递到其他页面以执行数据

socket.io从onclick操作获取数据,然后将数据传递到其他页面以执行数据
EN

Stack Overflow用户
提问于 2013-01-02 16:02:32
回答 2查看 3.1K关注 0票数 0

我想创建一个使用node.js和socket.io的页面。

页面内有两个按钮,当我单击其中一个按钮时,它将更改一个定义动画持续时间的变量(这里省略CSS动画代码)。

当我在另一个浏览器上打开相同的页面并点击其中一个按钮时,我希望看到两个网页的变化。我不知道如何在socket.on('chat', function(data){???});中编写代码来使两个页面相互通信。

客户端:

//socket.io代码--

代码语言:javascript
运行
复制
<script type="text/javascript" charset="utf-8">

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

    socket.on('chat', function  (data)
    {
         function change_position(data)
          {
           document.getElementById("animation1").style.WebkitAnimationDuration=data;
          }
    });

 </script>

.....

//操作--

代码语言:javascript
运行
复制
<body>
<button id="1b" type="button" style="position:absolute; left:377px; top:220px;" value="2s"; onclick="change_position(value)"> - 1 - </button>

<button id="2b" type="button" style="position:absolute; left:477px; top:220px;" value="15s"; onclick="change_position(value)"> - 2 - </button>
</body>

服务器端:

代码语言:javascript
运行
复制
var io = require('socket.io'),
  connect = require('connect');

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

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

  socket.on('chat', function  (data) {
    chat_room.sockets.emit('chat', data);
  });
});
EN

回答 2

Stack Overflow用户

发布于 2013-01-02 20:40:45

如果你想要一条消息传播到所有客户端/套接字,在你的服务器中你应该有这样的东西:

代码语言:javascript
运行
复制
chat_room.sockets.on('connection', function (socket) {

  socket.on('chat', function  (data) {
    socket.broadcast.emit('chat', data);
    socket.emit('chat',data);
  });

});

socket.emit('chat',data);还允许您将消息发送回消息的发送者,因为广播将发送它的所有其他套接字。

当然,您可以省略该行并在客户端处理消息发送逻辑;例如,添加一些JavaScript代码,以便在将消息发送到服务器后立即进行您想要的更改。

票数 2
EN

Stack Overflow用户

发布于 2013-01-02 20:39:04

您可以在客户端使用socket.emit('message',data)发出消息。然后在服务器上用chat_room.socket.on('message',data)获取它。使用chat_room.sockets.emit('message',data)将其发送到客户端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14118668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档