当前位置: 首页 > 知识库问答 >
问题:

从PHP向Socket.io发出事件

充浩波
2023-03-14

嗨,我正在尝试从PHP向socketio服务器发出事件。这两个叉子我都试过了:

https://github.com/rase-/socket.io-php-emitter
https://github.com/ashiina/socket.io-php-emitter

<?php

require_once( 'socketio/src/Emitter.php' );

$emitter = new SocketIO\Emitter( array( 'port' => '6379', 'host' => '127.0.0.1') );

$emitter->broadcast->emit( 'testcall', 'data' );

?>
{
    "name": "Emitter",
    "devDependencies": {
        "express": "~4.13.4",
        "socket.io": "~1.7.3",
        "socket.io-redis": "~4.0.0"
    }
}
var app = require( 'express' )( ),
    http = require( 'http' ).Server( app ),
    io = require('socket.io')( http ),
    redis = require( 'socket.io-redis' );

http.listen( 8081, function( ) {
    console.log( '\n==========================' );
    console.log( 'server listening on *:8081' );
    console.log( '==========================\n' );
});

io.adapter( redis({ host: '127.0.0.1', port: 6379 }) );

io.on( 'connection', function( socket ) {
    socket.on( 'testcall', function( ) {
        console.log( 'testcall' );
    });
});

你知道我做错了什么吗?

共有1个答案

呼延光明
2023-03-14

它起作用了,我只是哑巴。来自PHP的事件正在被发送,但发送到客户机而不是服务器。显然我忘了它是怎么工作的哈。

 类似资料:
  • 代码服务器(节点JS): 奇怪的是,这似乎不起作用,“Socket Connected”被打印出来,但Socket不发射任何东西。如果我从“ping”->“ping”和从“pong”->“pong”改变发射和打开,一切都很好。我只是完全搞不懂为什么会这样,为什么示例可以使用小写发出。

  • 我有一个正在运行的nodejs服务器(通过浏览器,socket.io工作得非常好,可以发射和接收事件)。为了方便地模拟联机连接,im使用ngrok.io来隧道我的本地主机。这一切都很好。我想编写一个连接到同一服务器的小应用程序,但是虽然我的服务器能够累加socket.connect()调用,但它不能累加任何。emit()事件。 (我使用com.github.nkzawa:socket.io-cli

  • 问题内容: 我对Node.js / Express很陌生,并且将它用作AngularJS应用程序的后端。我到处都在StackOverflow上寻求有关此问题的帮助,但似乎无法弄清楚如何将建议移植到我的代码中。 我的应用程序如下工作: 长时间运行的Scala进程会定期发送我的Node.js应用程序日志消息。它通过发布到HTTP API来做到这一点 收到帖子后,我的应用程序将日志消息写入MongoDB

  • 我用socket.io通过nodejs和angular4编写了代码。我使用过2种不同的浏览器,我检查了连接和socket.io给了2个不同的socket.id,但是当发出2个浏览器时,却是从1个id发出的! 应用程序中的代码.js 代码发出 客户端的代码侦听 我所有的代码 初始化app.js 在chat.js路由添加新消息后发送聊天

  • 在React本机AppState库中: iOS有三种状态背景->非活动->活动 Android只有背景->活动 当一个Android应用完全后台化时,主要活动从onPause->onStop 当有系统通知(例如在应用程序购买)时,它将转到onPause 当应用程序从后台到前台时,我需要运行一些代码 onstop->onResume 如果应用程序由于系统通知 onpause->onResume而短暂

  • 问题内容: 如何从工厂或服务发出事件。我无法将$ scope注入工厂,因此无法发出事件。 我收到以下错误- 谢谢,Murtaza 问题答案: 您不能将控制器的作用域注入服务。您可以做的是: 将范围实例作为参数传递给您的服务功能之一: 例如 将$ rootScope注入到您的服务中: 例如