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

有可能与socketio同时使用flash套接字和websocket吗?

李奕
2023-03-14

我已经为此挣扎了几天,试图到处寻找信息,但我无法解决这个问题。

基本上,我有一个Flash客户端应用程序和一个浏览器 - 基于chrome的应用程序连接到套接字io - nodejs服务实例。

正如你所知,Chrome可以通过网络套接字工作,而我的flash应用程序可以通过flash套接字。

铬和节点之间一切都运行良好,但是当我从我的闪存应用程序进行任何交互时,这会将连接类型降级为闪存套接字而不是网页插座,从而使铬网页应用程序无法从服务器读取,因为服务器开始使用闪存插座发出消息。基本上,当我从flash进行任何交互时,chrome不再收到任何信息。

你知道有什么方法可以在闪存套接字中通过闪存节点提供信息,但也保证节点铬通过网络套接字进行通信吗?

我已经尝试了推荐的与套接字io连接的库,您可以在套接字io网站上找到;这是一个 https://github.com/simb/FlashSocket.IO

我还尝试在AS3中使用一个使用websocket的库,但似乎无法与socket正确通信。io;就是这个https://github.com/y8/websocket-as尝试连接时,套接字io输出的消息是“debug-destroying nonsocket.io upgrade”

这里有一些调试代码,显示了flashsockets和websocket,这是我的两个客户端应用程序试图连接到同一个socket io服务器:

https://gist.github.com/4637617

非常感谢你的帮助!

共有2个答案

祁飞扬
2023-03-14

谢谢,终于经过很多工作,我设法解决了这个问题。

插座io有一个非常聪明的实现,允许您使用名称空间和房间。

我通过在两个不同的命名空间中工作来解决它:一个用于浏览器,另一个用于flash。

例:

 var browser = io.of("/browser").on('connection', function (socket) {
     socket.on('move', function (data) {
        browser.emit("move", {"left" : data.left, "top" : data.top});
     });
 });

 io.sockets.on('connection', function (socket2) {
     socket2.on('click', function (data) {
        browser.emit("move", {"left" : 1000, "top" : 50});
    });
 });

当我单击按钮时,Flash会发送“单击”,然后我向浏览器命名空间中的所有浏览器发送消息。

相当有用。

希望这能帮助到某个人!

万事如意

赫连睿
2023-03-14

如果将 socket.io 配置为具有多个传输,则当客户端连接时,它将选取最佳可用传输。因此,如果一个客户端只能使用闪存,那就是它将要使用的,而另一个客户端可能使用 xhr 轮询。

默认情况下,您有网页套筒,html文件,xhr轮询,jsonp轮询,但没有闪回套筒。

参见https://github.com/LearnBoost/Socket.IO/wiki/配置-套接字。IO了解更多详细信息。

 类似资料:
  • 尝试使用Spring 4 WebSocket与STOMP通过使用Sockjs套接字。我面临一个问题。 我的配置: websocket.xml-Spring上下文的一部分 控制器代码: 客户端: 输出: 我做错了什么? 我在谷歌(TickerStocks或类似的东西,问候应用程序(Spring的例子))中找到了一些例子,所有这些都给了我同样的错误。我尝试使用WebSocket进行握手(不使用sock

  • 我正在尝试使用java套接字构建一个简单的多客户端聊天应用程序。我这样做的方式是,让一个客户机类连接到一个服务器类,该服务器类等待客户机连接,并创建一个新线程来处理该客户机(套接字连接在那里被读取和写入)。客户端还读取和写入到该线程的套接字连接。但是,当客户机写入套接字的输出流时,服务器不会响应。这里发布了一个类似的问题: 您可以同时写入套接字输入和输出流吗? 这里的一个答案是,只要在单独的线程上

  • 问题内容: 我正在构建需要使用套接字连接与另一个应用程序进行通信的Web应用程序。这对我来说是新领域,因此请确保套接字与websockets不同。看来它们只是概念上相似。 发问,因为起初我计划使用Django作为我项目的基础,但是在上面链接的SO帖子中,很清楚地证明websocket是不可能的(或者至少不可靠,即使使用django-websockets之类的东西也是如此) )使用首选的Django

  • 因此,我可以像为TCP套接字一样为每个客户端创建一个不同的UDP套接字吗? 注意:如果可能,请使用类来解释,而不是类。 代码说明:我以为建立TCP连接(Connect/Accept)后可以在两边(客户机/服务器)绑定一个UDP套接字。对于服务器上只有一个客户机是很好的。对于新客户机,server会引发异常,因为它无法将多个套接字与一个localEndPoint绑定在一起。和客户端可以超过所有可用端

  • 问题内容: 我试图理解SocketChannels和NIO。我知道如何使用常规套接字,以及如何制作一个简单的每客户端线程服务器(使用常规阻塞套接字)。 所以我的问题是: 什么是SocketChannel? 当使用SocketChannel而不是Socket时,我还能得到什么呢? 通道和缓冲区之间是什么关系? 什么是选择器? 文档中的第一句话是。那是什么意思? 我也阅读了本文档,但是不知何故…… 问

  • 问题内容: 我有一个Java应用程序,即Voip。我正在使用一个套接字通过线程同时发送和接收信息。代码如下所示。 我发现的问题是,当我写入输出流时,它在第一次写入时阻塞。我发送的字节数不多。贝娄是我的写代码。 读取声音代码的另一个线程是… 我已经在实际代码中注释了很大一部分,因为我只是想使其正常工作。我的写函数在第一次写时无限期阻塞。这可能是我的线程有问题吗?我唯一的想法是输出和输入流共享我的套接