As part of Google Wave Federation Day, we have open sourced the Operational Transformation (OT) implementation, which is the primary algorithm that manages the collaborative experience inside Google Wave, as well as the underlying wave model. To encourage early experimentation with the federation protocol, we also built a basic open source client/server. Check out the source code and get started with the introductory documentation.
It was Friday. Finally, I got it working. Thanks to jjgod and many other comments on the Installation page.
Basically I follow what has been described on the Installation page.
- Install Java 6 by
sudo apt-get install sun-java6-jre sun-java6-fonts
- Install openfire by
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.6.4_all.deb
sudo dpkg -i openfire_3.6.4_all.deb
sudo /etc/init.d/openfire restart - Configure the openfire server by entering http://remotecomputer:9090. It is a remote computer, but I confiure it as ‘localhost’.
- Restart the openfire by
sudo /etc/init.d/openfire restart
- Login openfire with admin and new password. Configure openfire as
my shared secret for wave subdomain is “foobar”Go to Server -> Server Settings
-> Registration and Login.
* Disable “Inband Account Registration”.
* Disable “Change Password”.
* Disable “Anonymous Login”-> Compression Settings
* Enable server-server compression-> File Transfer Settings
* Disable file proxy transfer - Set up certification files (Instruction is here.)
make-cert.sh#!/bin/sh
NAME=$1
if [ "$NAME" == '' ]
then
echo "$0" 1>&2
exit 1
fi
openssl genrsa 1024 | openssl pkcs8 -topk8 -nocrypt -out $NAME.key
openssl req -new -x509 -nodes -sha1 -days 365 -key $NAME.key -out $NAME.certexecute it as ./make-cert.sh testwave
check the certificate and key match byopenssl x509 -modulus -in testwave.cert -noout
openssl rsa -in testwave.key -modulus -nooutsame modulus value shown up
I did not get the certificate.
- Download wave-protocol from the source
hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol
Copy the testwave.cert and testwave.key files into wave-protocol folder.
- Edit the run-server.sh file. Mine is like
#!/bin/sh
PRIVATE_KEY_FILENAME=testwave.key
CERTIFICATE_FILENAME_LIST=testwave.cert
CERTIFICATE_DOMAIN_NAME=localhost
XMPP_SERVER_HOSTNAME=$CERTIFICATE_DOMAIN_NAME
XMPP_SERVER_IP=$XMPP_SERVER_HOSTNAME
XMPP_SERVER_SECRET="foobar"
java -jar dist/fedone-0.2.jar \
--client_frontend_hostname=127.0.0.1 \
--client_frontend_port=9876 \
--xmpp_component_name=wave \
--xmpp_server_hostname=$XMPP_SERVER_HOSTNAME \
--xmpp_server_ip=$XMPP_SERVER_IP \
--xmpp_server_port=5275 \
--xmpp_server_secret $XMPP_SERVER_SECRET \
--xmpp_server_ping="" \
--certificate_private_key=$PRIVATE_KEY_FILENAME \
--certificate_files=$CERTIFICATE_FILENAME_LIST \
--certificate_domain=$CERTIFICATE_DOMAIN_NAME \
--waveserver_disable_verification=false - Compile the protocol
ant dist
Run the server
./run-server.sh
The very first screen outputs are
Jul 26, 2009 3:02:37 PM org.waveprotocol.wave.examples.fedone.waveserver.WaveServerImpl
INFO: Wave Server configured to host local domains: [localhost]
Jul 26, 2009 3:02:37 PM org.waveprotocol.wave.examples.fedone.ServerMain$RpcInetSocketAddressFactory
INFO: Starting client frontend on host: 127.0.0.1 port: 9876
Jul 26, 2009 3:02:38 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.WaveXmppComponent initialize
INFO: initializing with JID: wave.localhost
Jul 26, 2009 3:02:38 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.WaveXmppComponent start
INFO: connected to XMPP server with JID: wave.localhost
Jul 26, 2009 3:02:38 PM org.waveprotocol.wave.examples.fedone.ServerMain run
INFO: Starting server
Jul 26, 2009 3:02:38 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.WaveXmppComponent processPacket
INFO: received XMPP packet:
Jul 26, 2009 3:02:38 PM org.waveprotocol.wave.examples.fedone.federation.xmpp.WaveXmppComponent sendPacket
INFO: sent XMPP packet:
- Edit run-client.sh (I noticed an update today of this file, using which I succeeded). Mine is like
#!/bin/sh
WAVE_SERVER_DOMAIN_NAME=localhost
WAVE_SERVER_HOSTNAME=127.0.0.1
WAVE_SERVER_PORT=9876
if [[ $# != 1 ]]; then
echo "usage: ${0}"
else
USER_NAME=$1@$WAVE_SERVER_DOMAIN_NAME
echo "running client as user: ${USER_NAME}"
java -jar dist/fedone-client-0.2.jar $USER_NAME $WAVE_SERVER_HOSTNAME $WAVE_SE
RVER_PORT
fi - Ready to go!
connect user user to the server by
./run-client.sh user
connect user good to the server by
./run-client.sh good
they are making noise …
http://en.dogeno.us/2009/07/my-attempt-to-install-google-wave-federation-protocol-on-a-ubuntu-server/
Aucun commentaire:
Enregistrer un commentaire