当前位置: 首页 > 面试题库 >

最简单的Socket.io示例的示例是什么?

燕建中
2023-03-14
问题内容

因此,我最近一直在尝试了解Socket.io,但是我不是一个非常出色的程序员,并且几乎可以在网络上找到的每个示例(相信我已经花了数小时的时间)都包含使事情变得复杂的额外内容。许多示例都会使我感到困惑,或者连接到一些奇怪的数据库,或者使用coffeescript或大量的JS库将事情弄乱了。

我很乐意看到一个基本的,可以正常运行的示例,其中服务器仅每10秒向客户端发送一条消息,说明现在几点,然后客户端将该数据写入页面或引发警报,这很简单。然后,我可以从那里弄清楚事情,添加数据库连接之类的我需要的东西。是的,我已经检查了socket.io网站上的示例,但它们对我不起作用,我也不知道它们在做什么。


问题答案:

编辑: 我觉得最好所有人参考Socket.IO入门页面上的出色聊天示例。自从我提供了这个答案以来,API已经被简化了。话虽如此,这是针对较新API的原始答案已更新的大小。

只是因为我今天感觉很好:

<!doctype html>
<html>
    <head>
        <script src='/socket.io/socket.io.js'></script>
        <script>
            var socket = io();

            socket.on('welcome', function(data) {
                addMessage(data.message);

                // Respond with a message including this clients' id sent from the server
                socket.emit('i am client', {data: 'foo!', id: data.id});
            });
            socket.on('time', function(data) {
                addMessage(data.time);
            });
            socket.on('error', console.error.bind(console));
            socket.on('message', console.log.bind(console));

            function addMessage(message) {
                var text = document.createTextNode(message),
                    el = document.createElement('li'),
                    messages = document.getElementById('messages');

                el.appendChild(text);
                messages.appendChild(el);
            }
        </script>
    </head>
    <body>
        <ul id='messages'></ul>
    </body>
</html>

app.js

var http = require('http'),
    fs = require('fs'),
    // NEVER use a Sync function except at start-up!
    index = fs.readFileSync(__dirname + '/index.html');

// Send index.html to all requests
var app = http.createServer(function(req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end(index);
});

// Socket.io server listens to our app
var io = require('socket.io').listen(app);

// Send current time to all connected clients
function sendTime() {
    io.emit('time', { time: new Date().toJSON() });
}

// Send current time every 10 secs
setInterval(sendTime, 10000);

// Emit welcome message on connection
io.on('connection', function(socket) {
    // Use socket to communicate with this particular client only, sending it it's own id
    socket.emit('welcome', { message: 'Welcome!', id: socket.id });

    socket.on('i am client', console.log);
});

app.listen(3000);


 类似资料:
  • 问题内容: 使用Javascript最简单的SOAP示例是什么? 为了尽可能有用,答案应该是: 具有功能性(换句话说,实际上有效) 发送至少一个可以在代码中其他位置设置的参数 处理至少一个可以在代码的其他位置读取的结果值 使用大多数现代浏览器版本 在不使用外部库的情况下尽可能清晰明了 问题答案: 这是我可以创建的最简单的JavaScript SOAP客户端。

  • 每当学习新技术时,我都喜欢写一个尽可能简单的例子。通常这意味着引用最少的控制台应用程序。我一直在尝试编写一个读取和写入Azure表存储的应用程序,但收效甚微。我使用了这个操作指南作为基础,但尝试在Main方法中完成所有操作。类似的方法在blob存储中效果很好,但表存储遇到了麻烦。 我能够使用此代码创建一个表。 运行此代码后,我可以使用Azure存储资源管理器在我的存储中看到一个表。(仍然不知道如何

  • 问题内容: 大家好,感谢您的宝贵时间和帮助。 我需要一个使用socket.io-redis的简单示例,请提供注释。我阅读了文档,但听不懂。谢谢, 问题答案: socket.io-redis文档没有提到您实际上需要运行redis服务器,因此您可能已经忘记了这一点。socket.io- redis插件使用redis服务器的pub / sub客户端连接多个socket.io实例。 从https://re

  • 问题内容: 请帮助我,如果有人可以给我一个例子,如何在cakephp 2.3.0中使用ajax,一个例子是这样的 当我单击链接时,具有ID的div 会发生变化。我如何使用cakephp 2.3.0做到这一点? 问题答案: 请参见以下示例:

  • 实例一、使用HTTP协议对外提供Web服务 创建http_test.php文件(位置任意,能引用到Workerman/Autoloader.php即可,下同) <?php use WorkermanWorker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 创建一个Worker监听2345端口,使用http协议通讯 $http_w

  • 我已经读了很多例子,博客文章,问题/答案关于//在Python 3.5中,许多是复杂的,我发现最简单的可能是这个。 仍然使用,为了学习Python中的异步编程,我想看一个更小的示例,以及执行基本异步/等待示例所需的最小工具是什么。 问题:是否可以给出一个简单的示例,说明/是如何工作的,只使用这两个关键字code运行异步循环—其他Python代码,而不使用其他函数? 例如:类似这样的东西: 但如果没