【问题标题】:Should I use SocketIO in PhP?我应该在 PhP 中使用 SocketIO 吗?
【发布时间】:2014-10-20 20:01:28
【问题描述】:

Web 编程对我来说是新事物,所以我有几个问题。我的目标是与在线货币兑换服务器进行交互。标准 API 发送数据有延迟,这使得它的使用不合适,但是 web Sight 也提供了 SocketIO 接口。我所需要的只是监听套接字并在无限循环中接收信息。我该怎么做?

SocketIO 与普通的套接字接口有什么不同吗?我的程序是用 PhP 编写的,而 SocketIO 是一个 JavaScript 库,如果我做对了的话。所以也许我可以避免使用它。在我的情况下更可取的是(该程序实际上不应该做任何特殊的事情,除了接收数据)。服务器使用 TSL/SSL 协议。

非常欢迎任何与我的问题相关的示例/链接。

谢谢!

【问题讨论】:

  • 你可以看一下 php Ratched library,它是 PHP 的(某种)SocketIO 端口
  • 这个问题解决了吗?

标签: php sockets socket.io


【解决方案1】:

PHP 和 socket.io 一起工作。使用 html 和使用 PHP 之间的唯一区别是您将两者链接在一起的方式(通用教程显示了一种仅适用于 html 的方式,但还有另一种适用于 html 和 php 的方式)。

var socket = require('socket.io');
var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

var io = socket.listen(server);

然后删除app.useapp.get,因为它们不再需要用于执行此操作。然后在 server.js 的末尾添加server.listen(8000);。对于依赖项,请使用:<script src="//cdn.socket.io/socket.io-1.0.0.js"></script>。然后,要运行您的服务器,请在终端中访问它并输入node server.js。然后只需与您的客户端连接即可。此外,对于服务器中的事件,请使用:

io.on('connection', function (client) {
    client.on('someEvent', function(someVariables){
        //Do something with someVariables when the client emits 'someEvent'
        io.emit('anEventToClients', someData);
    });
    client.on('anotherEvent', function(someMoreVariables){
        //Do more things with someMoreVariables when the client emits 'anotherEvent'
        io.emit('anotherEventToClients', someMoreData);
    });
});

在您的客户端代码中:

socket.emit('someEvent', variables);
socket.on('anEventToClients', function(something){
    //Code when anEventToClient is emitted from the server
});

【讨论】:

  • 非常感谢!我将尝试更深入地了解 SocketIO。但是我不明白一件事:如果网络视线已经提供了SocketIO接口,为什么我需要服务器?实际上我的目标是接收来自这个网络视线的推送通知。
  • 这只是为了确保您不要使用 express 中的 app.get 方法,因为这对 PHP 来说有点问题。除此之外,它可以正常运行(只要您正确连接它),就像任何其他 JavaScript 库使用 PHP 一样。
  • 此外,服务器允许客户端和网站之间的连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2017-04-20
  • 2014-08-19
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
相关资源
最近更新 更多