websocket实践

服务端以jetty8做容器,参考

http://wiki.eclipse.org/Jetty/Feature/WebSockets

http://dev.w3.org/html5/websockets/

如果用maven需要jetty-webapp和jetty-websocket依赖:

<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-webapp</artifactId>
			<version>8.1.2.v20120308</version>
		</dependency>
		<dependency>
        	<groupId>org.eclipse.jetty</groupId>
        	<artifactId>jetty-websocket</artifactId>
        	<version>8.1.2.v20120308</version>
    	</dependency>

注意jetty8实现的是servlet-api-3.0,所以要排除对servlet-api-2.5的依赖。否则会报Java SecurityException : signer information does not match 的错误。

在此jetty版本下webservletsocket代码为:

>package kzg.html5.websocket;

Continue reading websocket实践

heidisql使用ssh远程连接mysql

一般都是使用phpmyadmin来管理远程数据库,但是也可以使用自己喜爱的mysql客户端工具配合ssh通道来连接远程数据库,其道理就似乎是个代理,用ssh工具登陆上mysql所在主机的某个端口,在本地开个端口,那么本机对此端口的请求就会连接到主机上的配置的端口上。

下面以heidisql为例。

最主要的是ssh的配置,putty大家都知道吧,用它来建立隧道。

首先你的远程服务器需要开通ssh连接,此文就不涉及内容,假定已可以通过ssh远程连接,并且检查msql是否允许此主机连接,可以通过cpanel的RemoteMysql来配置。

在putty中需要配置:

打开putty,在session中配置主机ip地址或域名以及端口。

mysqlgui2

然后配置本机到主机的映射隧道:

在tunnels中source port是你打算在本机映射的端口此例中是3307,注意不要使用已被占用的端口。

Destination中添目标mysql主机ip以及mysql端口,此例中是codex345.extremehost,端口是3306

选中local和auto点击Add,那么隧道就配置成功了。

mysqlgui3

在session中保存你的配置,点击open,此时会出现putty控制台登陆远程主机,需要你填入用户名和密码。登陆成功后,就可以在heidisql中项配置本地数据库一样配置到远程数据库的连接了。此例中练的是本地,端口是上面配置的3307,其实就是通过隧道连接到远程主机的3306端口了,是不是很方便呢。

mysqlgui4

实际开发中不喜欢每次都要在putty中输入用户名密码,而putty处于安全的考虑又不提供保存密码的功能,那么你可以使用xshell,它是一款功能更强大的商业软件,而且对个人用户免费哈哈。见http://www.netsarang.com/products/xsh_overview.html

它的配置和putty很类似,对于隧道配置如下图,其实也是一样,只不过界面改了,我在这里烂一下笔头,方便大家区分:

Snap1

 

有时连接出现SQL Error (2013): Lost connection to MySQL server at 'reading initial communication packet',错误,经测试改用ip而不是域名连接远程主机就可以解决这个问题。

Continue reading heidisql使用ssh远程连接mysql

php版本升级问题

升级到5.3注意的问题:

增加了Deprecated 错误级别 http://php.net/manual/en/migration53.deprecated.php

Deprecated features in PHP 5.3.x

PHP 5.3.0 introduces two new error levels: E_DEPRECATED and E_USER_DEPRECATED. The E_DEPRECATED error level is used to indicate that a function or feature has been deprecated. The E_USER_DEPRECATED level is intended for indicating deprecated features in user code, similarly to the E_USER_ERROR and E_USER_WARNING levels.

The following is a list of deprecated INI directives. Use of any of these INI directives will cause an E_DEPRECATED error to be thrown at startup.

Deprecated functions:

Deprecated features:

  • Assigning the return value of new by reference is now deprecated.
  • Call-time pass-by-reference is now deprecated.

Continue reading php版本升级问题

linux cron任务执行php

一般可使用cpanel 中的cron job界面来添加任务,对于执行php来说,可现在本机上执行命令测试了再加上去。

也可使用

crontab -e

来直接编辑,注意cpanel的cron脚本是没有放在这里面的。

还可以使用浏览器来执行呢:

http://www.htmlcenter.com/blog/running-php-scripts-with-cron/

 

默认情况下,crontab中执行的日志写在/var/log下,如:

#ls /var/log/cron*

/var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4

crontab的日志,当crond执行任务失败时会给用户发一封邮件。如果在服务器上发现一个任务没有正常执行,而crond发邮件也失败。通过看mail的日志,看是否是磁盘空间不够造成的

将cornd错误输出和标准输出日志都指向自定义的日志文件:

0 6 * * * $HOME/fro_crontab/createTomorrowTables>>$HOME/for_crontab/mylog.log 2 >&1

 

对于codeigniter来说,可参见他的源码cron.php,它是模仿http请求来做的。

参见:

http://tech.ddvip.com/2008-06/121324087945638.html

Continue reading linux cron任务执行php

openfire配置杂记

openfire最好依据目标操作系统选择版本,linux上就应该选择RPM版,这样就省却很多麻烦。比如与其他xmpp服务商的通信。openfire server上有个server to server配置,据我的经验,选择好了版本,安装好了,根本就不需要配置这个就可以和gtalk,jabber等通信,即本服务器上的用户[email protected]发送给[email protected]的消息会发送给[email protected][email protected]的发送给[email protected]消息[email protected]也收的到。

另外http://sourceforge.net/projects/kraken-gateway这个插件是提供其他流行的xmpp server的登陆的,比如gtalk,yahoo,甚至QQ。

openfire是提供离线消息的,默认这个配置也是开启的,在Server/Server Settings/Offline Message 中配置

Continue reading openfire配置杂记

Pagination


Total views.

© 2013 - 2019. All rights reserved.

Powered by Hydejack v6.6.1