Git Product home page Git Product logo

mod-socket-io's People

Contributors

nectarine avatar whiteship avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mod-socket-io's Issues

missing closed messages

When, isOpen, after playload(closed messages), the connection is closed and some messages came in the list but the closed messages removed.

        if (transport.isOpen()) {
            String sessionId = clientData.getId();
            List<Buffer> buffers = manager.closed(sessionId);
            if (buffers != null && buffers.size() > 0) {
                transport.payload(buffers);  // send playload
                                manager.removeClosed(sessionId);  //  remove messages has been sent between above line and this line.
            }

mod-socket-io JavaScript

안녕하세요.
Vert.x에서는 JavaScript 또한 지원하는데, mod-socket-io를 JavaScript 환경에서 사용할 수 있는 방법이 있을까요?

namespace problem

from Vasco Amaral

Sorry again for the "spam".
I'm trying to aan example with your module of socket.io for vertx. But not doing well. I think that could be some problems from your module. But I need an answer from you to know if it's my problem or yours module's problem.

I'm trying to create NameSpaces with something like this in javaScript:

var io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket) {
    socket.on('newchannel', function (data) {
        console.log(data);
        onNewNamespace(socket, data.channel, data.sender, io);
    });
});

function onNewNamespace(socket, channel, sender, io) {
   var space = io.of('/' + channel);
    space.on('connection', function (socket) {
        socket.on('message', function (data) {

            space.emit('message', data.data);
        });
    });
}

And running with "node file.js" it's working. but when I change the code to Java like this:

import org.vertx.java.core.Handler;
import org.vertx.java.core.http.HttpServer;
import org.vertx.java.core.json.JsonObject;
import org.vertx.java.deploy.Verticle;

  public class VertxSocketIO extends Verticle {

    public void start() {
        System.out.println("Socket IO Started");
        HttpServer server = vertx.createHttpServer();
        SocketIOServer io = new DefaultSocketIOServer(vertx, server);

        io.sockets().onConnection(new Handler<SocketIOSocket>() {
            public void handle(final SocketIOSocket socket) {

                socket.on("newchannel", new Handler<JsonObject>() {

                    public void handle(JsonObject data) {
                        final Namespace newSpace = io.of("/" + data.getField("channel").toString());
                        newSpace.onConnection(new Handler<SocketIOSocket>() {
                            public void handle(SocketIOSocket socket){
                                socket.on("message",  new Handler<JsonObject>() {
                                    public void handle(JsonObject data) {
                                        newSpace.emit("message", data.getObject("data"));
                                    }
                                });
                            }
                        });
                    }
            });
            }
        });

        server.listen(8888);
    }
  }

The functions are the same and do the same features of the javascript example. but my server is not exchanging well my messages. Sometimes server not emit messages but another times it transmits.

Plz if can you answer me it will be great!

Ver.x 2.0 - AbstractConnection Issue

Vert.x 2.1에서 컴파일시 AbstractConnection 클래스가 없다는 컴파일 에러가 나옵니다.

파일명 : RequestUtil.java 의 "getRemoteAddress"를 아래 처럼 수정하면 되네요..

InetSocketAddress address = req.netSocket().remoteAddress();
host = address.getHostString();

latest version has error when i mvn install.don't support jdk1.6?

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project mod-socket-io: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] javac: 无效的目标版本: 1.7
[ERROR] 用法: javac
[ERROR] -help 用于列出可能的选项
[ERROR] -> [Help 1]

java.lang.ClassCastException: com.nhncorp.mods.socket.io.impl.Namespace cannot be cast to com.nhncorp.mods.socket.io.impl.Namespace

2개 질문이 있습니다.

Eclipse 에서 maven 프로젝트로 생성하고 mod.json 파일에 "auto-redeploy": true 추가해서 자동 디플로이 활성화 시킨 이후에 아래와 같이 실행하면 서버가 구동 됩니다.

하지만 여기서 제가 target/mods/comvertx0.0.1-SNAPSHOT/views/index.html 파일을 수정함과 동시에 아래와 같은 ClassCastException이 발생합니다.
다시 확인한 결과 mod 폴더까지 가지 않고 src 폴더에 있는 파일을 수정해도 모두 동일한 오류가 발생합니다.

제가 알기로는 이런방식으로 자동으로 변경된 리소스를 감지해서 계속 서버가 구동되는거 같은데 에러가 발생하더라구요.

두번째는 mod.json 파일에 "includes": "com.nhncorp.socket-io-v0.9.10" 라고 입력 안해도 socket-io는 작동하더군요 이게 maven dependency에 제가 mod-socket-io v1.0.2를 추가해서 그런가요?

$ mvn vertx:runModEclipse
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Project - vertx 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- vertx-maven-plugin:2.0.0-final:runModEclipse (default-cli) @ vertx ---
22:50:02.221 [vert.x-eventloop-thread-2] INFO c.n.mods.socket.io.impl.Manager - socket.io started
[INFO] CTRL-C to stop server
9▒▒ 14, 2013 10:50:16 ▒▒▒▒ org.vertx.java.core.logging.impl.JULLogDelegate info
INFO: Module comvertx0.0.1-SNAPSHOT has changed, reloading it.
9▒▒ 14, 2013 10:50:17 ▒▒▒▒ org.vertx.java.core.logging.impl.JULLogDelegate error
SEVERE: Failed to deploy
java.lang.ClassCastException: com.nhncorp.mods.socket.io.impl.Namespace cannot be cast to com.nhncorp.mods.socket.io.impl.Namespace
at com.nhncorp.mods.socket.io.impl.Manager.of(Manager.java:83)
at com.nhncorp.mods.socket.io.impl.Manager.(Manager.java:68)
at com.nhncorp.mods.socket.io.impl.DefaultSocketIOServer.(DefaultSocketIOServer.java:32)
at com.vertx.server.SocketIOProtect.start(SocketIOProtect.java:55)
at org.vertx.java.platform.Verticle.start(Verticle.java:82)
at org.vertx.java.platform.impl.DefaultPlatformManager$18.run(DefaultPlatformManager.java:1278)
at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:171)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:353)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:366)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
at java.lang.Thread.run(Thread.java:724)

Vert.x 1.3.1 maven 저장소와 Vert.x 2.0.0 에서 실행 방법 질문

Java 기반으로 Socket.io 를 테스트 해보려고 하는데요

Vert.x 1.3.1 기반으로 아래와 같이 maven 설정을 해주면 mod-socket-io 라이브러리가 존재하지 않는다고 오류를 출력하더라구요

com.nhncorp mod-socket-io 0.9.10 #

그래서 예제 프로젝트에 있는거 처럼 Vert.x 2.0.0-CR3 를 사용하고 dist 폴더에 있는 jar 파일을 vert.x lib 폴더에 복사하고 "vertx run SampleVerticle.java" 같이 실행하면 아래와 같이 오류가 출력됩니다.

java.lang.IncompatibleClassChangeError: Found interface org.vertx.java.core.impl.VertxInternal, but class was expected

기본적인 vert.x 예제를 작동되는데,,,, 확인 부탁드립니다

Bug?

In my project the core it's all of them in vertx. So try to not use node to run my socket.io server I want to use this module to have everything working with vertx.

In the examples that you put

  • /samples/tests/Issue5.js <- work well
  • /samples/tests/Issue5.java <- not working well

If I run my application with "node Issue5.js" my clients connect well and switch the message weel in that channel but if I run the verticle with "vertx run Issue5.java" this is not connection well and in the most of times they not exchange the message to negotiate the sdp parameters.

(Using this examples https://github.com/muaz-khan/WebRTC-Experiment/tree/master/socketio-over-nodejs/webrtc-signaling)

I don't know why, why code in Javascript (node) work and in Java (vertx) it's not working?

My client file is in: https://gist.github.com/oxsav/5635084

If you can take a look should be great.

Thanks again

IE9 이하 버전에서 크로스 사이트 서버 사용 시 JSONP-Polling 동작이 안되는 문제

클라이언트가 IE9 이하 버전이고,

socket.io 서버의 도메인이 다른 경우,

JSONP-Polling trnasport가 정상 동작하지 않는 문제가 있습니다.

클라이언트로 전송되는 data가 항상 "io.j[0]" 로 되어 있어서 발생하는 문제로 보입니다.


데이터를 보낼때 클라이언트의 i 파라메터값을 읽어와서 io.j[]의 인덱스로

전송하도록 문제가 해결 됩니다.

public JsonpPolling(Manager manager, ClientData clientData)  {
    super(manager, clientData);
    this.head = "io.j";
    this.foot = ");";
}

protected void doWrite(String encodedPacket) {
           ...
    String index = clientData.getParams().get("i");
    String result = Json.encode(encodedPacket);
    String data = (encodedPacket == null) ? "" : this.head + "[" + index +
                               "](" + result + this.foot;
            ...
}

java version 8

java version 8 에서는 mod-socket-io 를 사용할 수 없나요?

Problems: The method 'emit(arg1, arg2)' don't works on Firefox

Hi, keesun

I'm trying to call the method "socket.emit (arg1, arg2)" (javascript) for Firefox (v.22, v.26), the call is not received within "VerticleClass", the problem does not happen with other browsers (IE, Chrome, Safari), but when listening method "socket.on (arg1, arg2)" Firefox receives the data normally. What do you think is happening? Is this a bug?

2.0 module?

I'd love to see this module built for 2.0 and in the module registry before we release 2.0 :)

Maven (for the Vert.x 2.0.0-final) 버전 사용 시 에러

vert.x spring mvc 버전을 사용하려고
mod-socket-io를 1.0.1 버전으로 사용하였습니다.
vert.x 는 가이드에 나온데로 2.0.0-final 버전으로 사용하였으나
아래 이슈와 같은 에러가 발생합니다.
#9

vert.x 버전업 문제인지 확인 부탁드리겠습니다.

Slightly misleading instructions

The README says copy everything in dist to your vert.x lib dir to make socket.io available to verticles. If you do so, you also copy the v0.9 jar, which will be typically searched for classes before the 1.0 version, leading to an error when trying to run a verticle using socket.io. Removing that jar from dist is all that's required to fix this problem.

NegativeArraySizeException in Parser.java

Sometimes Paser got an exception in https://github.com/keesun/mod-socket-io/blob/master/src/main/java/com/nhncorp/mods/socket/io/impl/Parser.java#L245

I'm using client build:0.9.16

Is there any quick fix for this as this as it crashes after couple of hours because of this exception?

Exception details:
java.lang.NegativeArraySizeException
at org.vertx.java.core.buffer.Buffer.getBytes(Buffer.java:177)
at org.vertx.java.core.buffer.Buffer.getString(Buffer.java:205)
at com.nhncorp.mods.socket.io.impl.Parser.decodePayload(Parser.java:245)
at com.nhncorp.mods.socket.io.impl.transports.Http.onData(Http.java:160)
at com.nhncorp.mods.socket.io.impl.transports.Http$2.handle(Http.java:89)
at com.nhncorp.mods.socket.io.impl.transports.Http$2.handle(Http.java:83)
at org.vertx.java.core.http.impl.DefaultHttpServerRequest.handleEnd(DefaultHttpServerRequest.java:322)
at org.vertx.java.core.http.impl.ServerConnection.handleEnd(ServerConnection.java:209)
at org.vertx.java.core.http.impl.ServerConnection.processMessage(ServerConnection.java:313)
at org.vertx.java.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:94)
at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:672)
at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:563)
at org.vertx.java.core.http.impl.VertxHttpHandler.channelRead(VertxHttpHandler.java:61)
at org.vertx.java.core.net.impl.VertxHandler.channelRead(VertxHandler.java:156)
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338)
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:153)
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:338)
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:324)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:126)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:452)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:346)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
at java.lang.Thread.run(Thread.java:744)

NPE Thrown by the DefaultSocketIOServer when using socket.emit("") without data.

I've implemented the DefaultSocketIOServer just like the example. Everything so far works perfect.

But when, on the client side, I use a command emit just using a String parameter, without the JSON data:

socket.emit("request");

The server throws an exception:

java.lang.NullPointerException
at org.vertx.java.core.json.JsonObject.putArray(JsonObject.java:72)
at com.nhncorp.mods.socket.io.impl.Parser.decodePacket(Parser.java:195)
at com.nhncorp.mods.socket.io.impl.transports.WebSocketTransport$3.handle(WebSocketTransport.java:38)
at com.nhncorp.mods.socket.io.impl.transports.WebSocketTransport$3.handle(WebSocketTransport.java:36)
at org.vertx.java.core.http.impl.DefaultWebSocket.handleFrame(DefaultWebSocket.java:193)
at org.vertx.java.core.http.impl.ServerConnection.handleWsFrame(ServerConnection.java:178)
at org.vertx.java.core.http.impl.ServerConnection.processMessage(ServerConnection.java:282)
at org.vertx.java.core.http.impl.ServerConnection.handleMessage(ServerConnection.java:93)
at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.messageReceived(DefaultHttpServer.java:556)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:369)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:568)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:437)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:563)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:558)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:91)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:373)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:247)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

Can't run with Clojuer

Hey

I'm trying to use your module in Vert.x + Clojure + lein-vert combo, but i have an exception

java.lang.ClassNotFoundException: MessagebusserviceCoreInit.clj 

My project.clj

(defproject messagebusservice "0.1.0-SNAPSHOT"
            :description "FIXME: write description"
            :url "http://example.com/FIXME"
            :license {:name "Eclipse Public License" :url "http://www.eclipse.org/legal/epl-v10.html"}
            :repositories {"mod-socket-io" "https://github.com/keesun/mvn-repo/raw/master"}
            :dependencies [[org.clojure/clojure "1.6.0"]
                           [com.nhncorp/mod-socket-io "1.0.1"]
                           [org.javassist/javassist "3.19.0-GA"]]
            :plugins [[lein-vertx "0.3.1"]]
            :vertx {:main       messagebusservice.core/init
                    :author     "FIXME: Your name"
                    :keywords   ["FIXME: keywords"]
                    :developers ["FIXME: other developers"]})

My corej.clj

(ns messagebusservice.core
  (:require [vertx.core :as vertx]))

(defn init
  []
  (vertx/periodic 1000
                  (println "I'm working!")))

Is it supported at all?

Do you know any v3 or higher server?

Hello sir, I am an jr.Android Developer and created a socket.io client side with java. So I think you know there is v1 or v2 in client side for java. My problem is that my company use v3 in server side so I have to use v2 client (highest version in java) but I cant connect to their server. So I need to a v3 or higher server side url for test my client side for check the problem is in my side or in server side. Do you know any v3 or higher server?

Note: When I switch to v1 in client I can easly connect to other v2 servers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.