Bingo! /socket was all I needed *slaps forehead* Ok, its connecting now, and retrieves the wave list ok. Thanks a bunch. (and good to know how to monitor my web-socket traffic too, that will be usefull in future)
However, now I'm getting an error logged when I try to click a wave; ed Sep 29 02:10:52 CEST 2010[SEVERE] Unhandled exception Received deltas with no stacklet present! org.waveprotocol.wave.concurrencycontrol.channel.OperationChannelMultiplexerImpl$3.onUpdate (OperationChannelMultiplexerImpl.java:596) org.waveprotocol.wave.concurrencycontrol.channel.ViewChannelImpl.onUpdate (ViewChannelImpl.java:331) org.waveprotocol.wave.examples.client.webclient.waveclient.common.WaveViewServiceImpl.publishDeltaList (WaveViewServiceImpl.java:297) org.waveprotocol.wave.examples.client.webclient.waveclient.common.WebClientBackend.receiveWaveletUpdate (WebClientBackend.java:337) org.waveprotocol.wave.examples.client.webclient.client.WebClient$3.handleWaveletUpdate (WebClient.java:120) org.waveprotocol.wave.examples.client.webclient.client.WaveWebSocketClient$2.onMessage (WaveWebSocketClient.java:93) com.google.gwt.websockets.client.WebSocket.onMessage (WebSocket.java:94) sun.reflect.NativeMethodAccessorImpl.invoke0 (null:-2) sun.reflect.NativeMethodAccessorImpl.invoke (null:-1) sun.reflect.DelegatingMethodAccessorImpl.invoke (null:-1) java.lang.reflect.Method.invoke (null:-1) com.google.gwt.dev.shell.MethodAdaptor.invoke (MethodAdaptor.java:103) com.google.gwt.dev.shell.MethodDispatch.invoke (MethodDispatch.java:71) com.google.gwt.dev.shell.OophmSessionHandler.invoke (OophmSessionHandler.java:154) com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn (BrowserChannelServer.java:336) com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript (BrowserChannelServer.java:217) com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke (ModuleSpaceOOPHM.java:120) com.google.gwt.dev.shell.ModuleSpace.invokeNative (ModuleSpace.java:510) com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject (ModuleSpace.java:264) com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject (JavaScriptHost.java:91) com.google.gwt.core.client.impl.Impl.apply (Impl.java:-1) com.google.gwt.core.client.impl.Impl.entry0 (Impl.java:214) sun.reflect.GeneratedMethodAccessor32.invoke (null:-1) sun.reflect.DelegatingMethodAccessorImpl.invoke (null:-1) java.lang.reflect.Method.invoke (null:-1) com.google.gwt.dev.shell.MethodAdaptor.invoke (MethodAdaptor.java:103) com.google.gwt.dev.shell.MethodDispatch.invoke (MethodDispatch.java:71) com.google.gwt.dev.shell.OophmSessionHandler.invoke (OophmSessionHandler.java:154) com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages (BrowserChannelServer.java:291) com.google.gwt.dev.shell.BrowserChannelServer.processConnection (BrowserChannelServer.java:541) com.google.gwt.dev.shell.BrowserChannelServer.run (BrowserChannelServer.java:362) java.lang.Thread.run (null:-1) (No blips appear) On 29 September 2010 01:27, Joseph Gentle <[email protected]> wrote: > A single packet doesn't mean much, unfortunately. > > Right-click on that packet you found. One of the options is 'Follow > TCP stream' or something like that. A new box will come up which shows > the full TCP stream. There are buttons down the bottom of the window > to switch it to ascii mode. Paste in a copy of that. > > It looks like maybe the client is trying to connect via websockets to > '/' as opposed to '/socket', which is the correct URL. I'm going to > guess that you've changed line 182 in WebClient.java from this: > websocket.connect(getWebSocketBaseUrl(GWT.getModuleBaseURL()) + "socket"); > ... to something like this: > websocket.connect("ws://my-server:9898/"); > ... when actually it should be this: > websocket.connect("ws://my-server:9898/socket"); > > If thats not the case, can you add this line: > LOG.info("Connecting to websocket URL: " + url); > to > src/org/waveprotocol/wave/examples/client/webclient/client/WaveWebSocketClient.java > line 108, recompile the GWT app, force your browser to reload and tell > me what the log spits out as the websocket url? > > Cheers > Joseph > > On Wed, Sep 29, 2010 at 8:39 AM, Thomas Wrobel <[email protected]> > wrote: > > Ok, I tried that software and I -think- I'm doing the right thing. Set it > to > > only capture things on 9898, then looked at things going from my IP once > the > > webclient was trying to connect. > > This seemed to be the result; > > 0000 00 24 8c bc 0c 34 00 16 e6 85 e9 95 08 00 45 00 .$...4.. > ......E. > > 0010 01 05 25 3c 40 00 80 06 ee fd c0 a8 b2 36 c0 a8 ..%<@... > .....6.. > > 0020 b2 31 05 10 26 aa 18 93 8d 8b 13 9f 48 77 50 18 .1..&... > ....HwP. > > 0030 80 00 77 68 00 00 47 45 54 20 2f 20 48 54 54 50 ..wh..GE T / > HTTP > > 0040 2f 31 2e 31 0d 0a 55 70 67 72 61 64 65 3a 20 57 /1.1..Up grade: > W > > 0050 65 62 53 6f 63 6b 65 74 0d 0a 43 6f 6e 6e 65 63 ebSocket > ..Connec > > 0060 74 69 6f 6e 3a 20 55 70 67 72 61 64 65 0d 0a 48 tion: Up > grade..H > > 0070 6f 73 74 3a 20 31 39 32 2e 31 36 38 2e 31 37 38 ost: 192 > .168.178 > > 0080 2e 34 39 3a 39 38 39 38 0d 0a 4f 72 69 67 69 6e .49:9898 > ..Origin > > 0090 3a 20 68 74 74 70 3a 2f 2f 31 32 37 2e 30 2e 30 : http:/ > /127.0.0 > > 00a0 2e 31 3a 31 32 33 34 0d 0a 53 65 63 2d 57 65 62 .1:1234. > .Sec-Web > > 00b0 53 6f 63 6b 65 74 2d 4b 65 79 31 3a 20 31 2b 38 Socket-K ey1: > 1+8 > > 00c0 37 20 32 6b 38 37 32 20 31 20 20 20 20 20 6c 36 7 2k872 1 > l6 > > 00d0 32 0d 0a 53 65 63 2d 57 65 62 53 6f 63 6b 65 74 2..Sec-W > ebSocket > > 00e0 2d 4b 65 79 32 3a 20 32 3c 49 20 20 6f 20 20 4a -Key2: 2 <I o > J > > 00f0 20 39 20 32 35 45 20 35 58 20 31 6f 34 20 35 20 9 25E 5 X 1o4 5 > > 0100 20 34 20 38 44 2f 2a 0d 0a 0d 0a b4 1e 60 94 62 4 8D/*. > .....`.b > > 0110 77 d4 77 w.w > > Does that mean anything to anyone? Sorry about having the hex-view there > > too, I dont know how to set the software to output just the text view. > > > > On 28 September 2010 14:14, Dave butlerdi <[email protected]> wrote: > >> > >> You can download Wireshark from http://www.wireshark.org/ and see all > your > >> messages. > >> > >> On 28 September 2010 14:10, Thomas Wrobel <[email protected]> wrote: > >>> > >>> Ok, so I can ignore the compile errors as they have nothing to do with > >>> the server not connecting. > >>> I added a few more log lines to try to debug. > >>> After a "Warning:Session not available" message, the webclient seems to > >>> get as far as the; > >>> > >>> " public static native WebSocketImpl create(WebSocket client, String > >>> server) > >>> /*-{ > >>> console.warn("creating websocket "); > >>> var ws = new WebSocket(server); ............" > >>> > >>> But then I get a "unexpected response" in the console; > >>> creating websocket > >>> :1234Unexpected response code: 200 > >>> And the server is getting this exception; > >>> HttpException(400,null,null) > >>> at > >>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:360) > >>> at > >>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211) > >>> at > >>> org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424) > >>> at > >>> > org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506) > >>> at > >>> > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) > >>> at java.lang.Thread.run(Thread.java:619) > >>> > >>> I'm not sure how to proceed to debug this further. (Is there a way to > see > >>> what "new WebSocket(server);" is broadcasting out?) > >>> ======== > >>> Regarding websockets; > >>> I was not aware same-origin policy applied to websockets - I really > need > >>> to be able to run the server on a different machine > >>> to the client, so is there some way to specify an IP/Port as being > >>> allowed? They are both on the same local network. (Server is > Ubuntu/Prosody, > >>> client is just WindowsXP). > >>> This is my first experience using websockets so I have little knowledge > >>> of how to set things up. (or even where to look) > >>> > >>> Thanks for your help, > >>> -Thomas > >>> > >>> > >>> > >>> > >>> On 28 September 2010 01:25, Joseph Gentle <[email protected]> wrote: > >>>> > >>>> Hey - I didn't know you could just right-click and go 'Compile GWT > >>>> Application'. Thats neat. I've been using eclipse's ant plugin to > >>>> compile the code using ant. Maybe thats the reason you had to add > >>>> gwt.user.User to the modules - maybe our ant gwt compilation adds that > >>>> through a command-line flag or something. > >>>> > >>>> The compile errors you're seeing are due to our gwt xml files pulling > >>>> in some unused class files, which are missing .java source code. The > >>>> compile still works anyway because none of those classes are actually > >>>> used. As for the JavaWaverefEncoder thing, I actually fixed something > >>>> else related to that class and got confused. I'm seeing that error > >>>> during gwt compilation as well. > >>>> > >>>> So given that your build is succeeding, why doesn't your wave client > >>>> work? If I had to guess, I'd say that maybe the single-origin policy > >>>> is causing the websocket connection to fail, since you're loading the > >>>> client locally, and its trying to open a websocket connection > >>>> remotely? I really don't know. If you want to muck around, I recommend > >>>> just running the server locally on your dev box. You can launch the > >>>> server from eclipse by importing the project ("New java project... > >>>> From existing source, Location: /foo/blah/wave-protocol"). Make a run > >>>> configuration. It should look like this: > >>>> Main class: org.waveprotocol.wave.examples.fedone.ServerMain > >>>> Arguments: > >>>> Program arguments: > >>>> --client_frontend_hostname=localhost --client_frontend_port=9876 > >>>> --wave_server_domain=example.com --xmpp_component_name=wave > >>>> --xmpp_jid=wave.example.com --xmpp_server_description=FedOne > >>>> --xmpp_server_hostname=example.com --xmpp_server_ip=example.com > >>>> --xmpp_server_port=5275 --xmpp_server_secret opensesame > >>>> --xmpp_server_ping=wavesandbox.com > >>>> --certificate_private_key=example.com.key > >>>> --certificate_files=example.com.crt --certificate_domain=example.com > >>>> --waveserver_disable_verification=false > >>>> --waveserver_disable_signer_verification=true > >>>> --http_frontend_hostname=localhost --http_frontend_port=9898 > >>>> --enable_federation=false --cert_path_store_type=memory > >>>> --attachment_store_type=disk --account_store_type=memory > >>>> > >>>> VM arguments: > >>>> -Dorg.eclipse.jetty.util.log.DEBUG=true > >>>> > >>>> ... At least, that works for me. > >>>> > >>>> -J > >>>> > >>>> > >>>> On Tue, Sep 28, 2010 at 4:16 AM, Thomas Wrobel <[email protected]> > >>>> wrote: > >>>> > Yup, the webclient hosted by the webserver works just fine. > >>>> > I wanted a go at making my own customized client though. > >>>> > > >>>> > It seemed, from a quick glance of the code, pretty trival to change > >>>> > where the client looks for the server so that was the only change I > >>>> > made. (just changing a dynamically made string by > >>>> > "getWebSocketBaseUrl" to a hard-coded one for now). > >>>> > I think that part is correct, as the server is getting the requests, > >>>> > they are just formated badly....which I assume is due to the other > >>>> > compile errors. > >>>> > > >>>> > I do get the permutations. > >>>> > The full compile log at the moment is; > >>>> > =============================================================== > >>>> > > >>>> > I'm compiling this by right clicking on WebClient.xml and going > >>>> > "Compile GWT Application" in eclipse. > >>>> > > >>>> > Strangely though, this is all from a version I checked out after > >>>> > Friday, so it should have had your fix already in it. > >>>> > > >>>> > Thanks, > >>>> > Thomas > >>>> > > >>>> > > >>>> > On 27 September 2010 03:53, Joseph Gentle <[email protected]> > wrote: > >>>> >> If you're running the server on another machine, just run: > >>>> >> ant compile_gwt > >>>> >> on the server and then when you ./run-server.sh it'll also host the > >>>> >> web frontend as well. (Usually at http://hostname:9898/) > >>>> >> > >>>> >> The web frontend isn't designed to let you connect to arbitrary > wave > >>>> >> servers, it assumes you're connecting to the machine that is > hosting > >>>> >> the page. > >>>> >> > >>>> >> As for windows builds, all that looks troubling. I put in a change > to > >>>> >> fix the JavaWaverefEncoder error last friday. Do those errors just > >>>> >> crop up when you're building? Does it go on to say: > >>>> >> [java] Compiling 3 permutations > >>>> >> [java] Compiling permutation 0... > >>>> >> [java] Compiling permutation 1... > >>>> >> ... etc? > >>>> >> > >>>> >> We really need to clean up our windows build bits. I think its a > bit > >>>> >> painful at the moment. (Or at the very least, write some docs which > >>>> >> explain how to do it) > >>>> >> > >>>> >> -J > >>>> >> > >>>> >> > >>>> >> On Mon, Sep 27, 2010 at 6:00 AM, ThomasWrobel <[email protected] > > > >>>> >> wrote: > >>>> >>> I'm trying to compile the simple web client using eclipse. > >>>> >>> I have a working wave server on another pc already, so I'm merely > >>>> >>> trying to compile a client and connect to it. > >>>> >>> > >>>> >>> I got the web client from here; > >>>> >>> > >>>> >>> > http://code.google.com/p/wave-protocol/source/browse?repo=default#hg/src/org/waveprotocol/wave/examples/client/webclient > >>>> >>> > >>>> >>> And imported it into eclipse. > >>>> >>> At first I got a few errors about "String" not being recognized in > >>>> >>> WebSockets,java, which were fixed by add; > >>>> >>> > >>>> >>> <inherits name="com.google.gwt.user.User"/> > >>>> >>> > >>>> >>> To some of the module.xmls. > >>>> >>> > >>>> >>> I also had to add a startup URL, pointing to copy of the starting > >>>> >>> page. > >>>> >>> With this it will compile and load in the browser (chrome) but > fails > >>>> >>> to connect. > >>>> >>> Giving a "attempting to reconnect" error every few seconds. > >>>> >>> (on the server end these are producing parser errors) > >>>> >>> > >>>> >>> Looking at the compile logs I got; > >>>> >>> > >>>> >>> 21:17:03.468 [ERROR] [webclient] Errors in > >>>> >>> 'jar:file:/C:/TomsProjects/ > >>>> >>> SimpleWaveMapClient/tomswaveserverthing/third_party/runtime/wave- > >>>> >>> libraries/common-src.jar!/org/waveprotocol/wave/common/util/ > >>>> >>> JavaWaverefEncoder.java' > >>>> >>> > >>>> >>> 21:17:03.484 [ERROR] [webclient] Line 20: The import java.netcannot > >>>> >>> be resolved > >>>> >>> > >>>> >>> 21:17:03.546 [ERROR] [webclient] Line 43: URLDecoder cannot be > >>>> >>> resolved > >>>> >>> > >>>> >>> and > >>>> >>> > >>>> >>> 21:17:03.718 [ERROR] [webclient] Errors in > >>>> >>> 'jar:file:/C:/TomsProjects/ > >>>> >>> SimpleWaveMapClient/tomswaveserverthing/third_party/runtime/wave- > >>>> >>> libraries/model-src.jar!/org/waveprotocol/wave/model/schema/impl/ > >>>> >>> UserDataSchemas.java' > >>>> >>> > >>>> >>> 21:17:03.734 [ERROR] [webclient] Line 65: No source code is > >>>> >>> available > >>>> >>> for type > >>>> >>> org.waveprotocol.wave.model.supplement.WaveletBasedSupplement; did > >>>> >>> you > >>>> >>> forget to inherit a required module? > >>>> >>> > >>>> >>> 21:17:03.750 [ERROR] [webclient] Line 209: No source code is > >>>> >>> available > >>>> >>> for type > >>>> >>> > org.waveprotocol.wave.model.supplement.DocumentBasedAbuseStore<N,E>; > >>>> >>> did you forget to inherit a required module? > >>>> >>> > >>>> >>> > >>>> >>> errors. > >>>> >>> I read around the group and it seems some errors are expected when > >>>> >>> compiling, but I dont think these ones are and the URLDecoder > could > >>>> >>> be > >>>> >>> the source of my error? > >>>> >>> any ideas? > >>>> >>> > >>>> >>> -- > >>>> >>> You received this message because you are subscribed to the Google > >>>> >>> Groups "Wave Protocol" group. > >>>> >>> To post to this group, send email to > [email protected]. > >>>> >>> To unsubscribe from this group, send email to > >>>> >>> [email protected]<wave-protocol%[email protected]> > . > >>>> >>> For more options, visit this group at > >>>> >>> http://groups.google.com/group/wave-protocol?hl=en. > >>>> >>> > >>>> >>> > >>>> >> > >>>> >> -- > >>>> >> You received this message because you are subscribed to the Google > >>>> >> Groups "Wave Protocol" group. > >>>> >> To post to this group, send email to > [email protected]. > >>>> >> To unsubscribe from this group, send email to > >>>> >> [email protected]<wave-protocol%[email protected]> > . > >>>> >> For more options, visit this group at > >>>> >> http://groups.google.com/group/wave-protocol?hl=en. > >>>> >> > >>>> >> > >>>> > > >>>> > -- > >>>> > You received this message because you are subscribed to the Google > >>>> > Groups "Wave Protocol" group. > >>>> > To post to this group, send email to [email protected] > . > >>>> > To unsubscribe from this group, send email to > >>>> > [email protected]<wave-protocol%[email protected]> > . > >>>> > For more options, visit this group at > >>>> > http://groups.google.com/group/wave-protocol?hl=en. > >>>> > > >>>> > > >>>> > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "Wave Protocol" group. > >>>> To post to this group, send email to [email protected]. > >>>> To unsubscribe from this group, send email to > >>>> [email protected]<wave-protocol%[email protected]> > . > >>>> For more options, visit this group at > >>>> http://groups.google.com/group/wave-protocol?hl=en. > >>>> > >>> > >>> -- > >>> You received this message because you are subscribed to the Google > Groups > >>> "Wave Protocol" group. > >>> To post to this group, send email to [email protected]. > >>> To unsubscribe from this group, send email to > >>> [email protected]<wave-protocol%[email protected]> > . > >>> For more options, visit this group at > >>> http://groups.google.com/group/wave-protocol?hl=en. > >> > >> > >> > >> -- > >> Regards > >> > >> Dave Butler > >> butlerdi-at-pharm2phork-dot-org > >> > >> Also on Skype as pharm2phork > >> > >> Get Skype here http://www.skype.com/download.html > >> > >> > >> ********************************************************************** > >> This email and any files transmitted with it are confidential and > >> intended solely for the use of the individual or entity to whom they > >> are addressed. If you have received this email in error please notify > >> the system manager. > >> > >> This footnote also confirms that this email message has been swept by > >> MIMEsweeper for the presence of computer viruses. > >> > >> www.mimesweeper.com > >> ********************************************************************** > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "Wave Protocol" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<wave-protocol%[email protected]> > . > >> For more options, visit this group at > >> http://groups.google.com/group/wave-protocol?hl=en. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Wave Protocol" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<wave-protocol%[email protected]> > . > > For more options, visit this group at > > http://groups.google.com/group/wave-protocol?hl=en. > > > > -- > You received this message because you are subscribed to the Google Groups > "Wave Protocol" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<wave-protocol%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/wave-protocol?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Wave Protocol" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/wave-protocol?hl=en.
