我是socketIO和elephantIO的新手,正在尝试从php文件向节点服务器发出emit_test.php如波纹管
ini_set("display_errors",5);
include ("vendor/autoload.php");
use ElephantIOClient;
use ElephantIOEngineSocketIOVersion1X;
$version = new Version1X("http://localhost:3001");
$client = new Client($version);
$client->initialize();
$client->emit("new_order", ["test"=>"test", "test1"=>"test1"]);
$client->close();
服务器.js文件
var socket = require('socket.io');
var express = require('express');
var https = require('https');
var http = require('http');
var logger = require('winston');
logger.remove(logger.transports.Console);
logger.add(logger.transports.Console, {colorize: true, timestamp: true})
logger.info('SocketIO > listening on port ');
var app = express();
var http_server = http.createServer(app).listen(3001);
function emitNewOrder(http_server){
var io = socket.listen(http_server);
//first listen to a connection and run the call back function
io.sockets.on('connection', function (socket) {
socket.on("new_order", function(data){
console.log(data);
//io.emit("new_order", data)
})
})
}
emitNewOrder(http_server);
我希望emit_test.php文件中的数据记录在接收式 PHP 文件中 用代码
<script>
var socket = io.connect("http://localhost:3001");
socket.on("new_order", function (data) {
console.log(data);
});
</script>
但是在运行服务器时出现错误:
致命错误:未捕获的意外值异常:服务器返回意外值。预期的"HTTP/1.1 101",有"
请帮忙吗?
我遇到了同样的问题。
我通过更改ElephantIO的版本来修复它。
在我更改emit_test.php:
use ElephantIOEngineSocketIOVersion1X;
$version = new Version1X("http://localhost:3001");
到此版本
use ElephantIOEngineSocketIOVersion2X;
$version = new Version2X("http://localhost:3001");