我应该在PhP中使用SocketIO吗?

时间:2014-08-27 09:36:36

标签: php sockets socket.io

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

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

任何接近我的问题的示例/链接都会受到欢迎。

谢谢!

1 个答案:

答案 0 :(得分: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
});